Я сделал директиву с изолированной областью с помощью метода «=», в этой директиве я передаю пустой массив, затем я нажимаю данные на этом массиве .... Как это изменение может быть отражено на исходном массиве в моем контроллере?Как я могу изменить массив в директиве, а затем отразить это изменение в моем контроллере?
Вот пример:
angular.module('myModule').controller('MyController', ['$scope', function($scope) {
$scope.test = [];
}]);
angular.module('myModule').directive('mydirective', function() {
return {
scope: {
test: "=",
bread: "="
},
restrict: 'E',
link: function(scope, element, attribute) {
scope.test.push('one more')
},
replace: true,
templateUrl: 'some template'
};
});
HTML
<div ng-controller='MyController'>
<mydirective test='test'></mydirective>
<div ng-bind='test'> </div>
</div>
Когда я нажать что-то на массив я не имею отражение того, что в моем контроллере. Как я могу это исправить?
Является ли ваш код полным? Кажется, вы не передаете переменную области видимости с вашего контроллера на директиву. – Starscream1984
@ Starscream1984 ну, вы должны передать '$ scope' контроллеру из директивы, а не наоборот - в любом случае OP имеет это неправильное –
да, я прошел, это просто упрощенный пример моей реальной проблемы. Я передаю массив test для директивы, затем я помещаю что-то в этот массив внутри директивы, а изменение не отражается в моем контроллере. –