【发布时间】:2019-11-18 12:56:50
【问题描述】:
我正在尝试将作用域数组元素传递给指令并更改指令内该元素的值,但是当我打印作用域元素的值时,在指令内所做的更改在父作用域中不受影响。我创建了隔离范围并在范围内使用'=' 提供了两种方式绑定,但它没有对父范围进行任何更改。
附上代码
Index.html
<div ng-app="dr" ng-controller="testCtrl">
<test word="word" ng-repeat="word in chat.words"></test>
<button ng-click="find();">
click
</button>
</div>
Javascript 部分
var app = angular.module('dr', []);
app.controller("testCtrl", function($scope) {
$scope.chat= {words: [
'first', 'second', 'third'
]};
$scope.find = function(){
alert(JSON.stringify($scope.chat, null, 4));
}
});
app.directive('test', function() {
return {
restrict: 'EA',
scope: {
word: '='
},
template: "<input type='text' ng-model='word' />",
replace: true,
link: function(scope, elm, attrs) {
}
}
});
我的大部分搜索都返回将'=' 放在指令范围内将解决问题,但没有运气。任何人都可以指出问题所在,以及如何在父范围内反映价值。
【问题讨论】:
标签: javascript angularjs angularjs-directive angularjs-scope angularjs-ng-repeat