Двухсторонние привязки данных не обновляются между компонентами
Я настраиваю межкомпонентную связь, используя двустороннюю привязку данных.У меня есть один родительский контроллер, который извлекает данные из вызова AJAX и отправляет эти данные двум компонентам.
Я попытался изменить данные, передаваемые компонентам, но если компонент child1 обновляет данные, дочерний компонентне получить данные обновления, хотя существует двусторонняя привязка данных.Я прочитал, что хук $ onChanges не будет захватывать событие изменения для двухсторонней привязки данных.
<div ng-controller="ParentController as ctrl">
<child1 data="ctrl.data"></child1>
<child2 data="ctrl.data"></child>
</div>
Родительский контроллер:
var app = angular.module('app',[]);
app.controller('ParentController', function($scope, $get){
//get data from AJAX call
this.data = getDataFromAjaxCall();
}
Child1 Компонент:
app.component('child1',{
bindings : {
data : '='
},
controller: function($scope){
var self = this;
self.$onChanges = function(changes){
if(changes.data)
console.log('data changed');
}
self.addData = function(){
self.data.push({
id : 10,
name : 'abc'
});
}
}
});
Child2 Component:
app.component('child2',{
bindings : {
data : '='
},
controller: function($scope){
var self = this;
self.$onChanges = function(changes){
if(changes.data)
console.log('data changed');
}
self.addData = function(){
self.data.push({
id : 20,
name : 'pqr'
});
}
}
});
Я ожидаю получить обновленные данные в компоненте child1, если компонент child2 изменил данные и наоборот.