Ответ 1
EDIT (снова): похоже, проблема в том, что вам нужны ссылочные типы в вашем массиве, такие как объекты или массивы.
Gloopy был точно прав в комментариях. Двунаправленное связывание не работало, потому что похоже, что Angular создавал копии ваших типов примитивов (строки, числа и т.д.) Между вторым спариванием областей. Итак... когда у вас есть вложенность двунаправленных связанных примитивов между двумя областями, это прекрасно, потому что он использует один экземпляр, но когда вы гнезди его более чем на одну глубину, он создает копию примитива, и вы больше не обновление одного и того же экземпляра.
app.controller('MainCtrl', function($scope) {
$scope.items = [
{ text: 'apples' },
{ text: 'bananas' },
{ text: 'oranges' }
];
$scope.addItem = function(){
$scope.items.push({ text: 'test' });
};
});
app.directive('test', function(){
return {
restrict: 'E',
scope: {
foo: '=foo'
},
template: '<div>{{foo}} <a ng-click="bar()">bar</a></div>',
controller: function($scope){
$scope.bar = function() {
$scope.foo += '!';
};
}
};
});