[英]Change a scope value in directive
什么是通過指令分配新值的最佳方法? 雙向數據綁定。
我在這里嘗試了一個小提琴。 http://jsfiddle.net/user1572526/grLfD/2/ 。 但它不起作用。
我的指示:
myApp.directive('highlighter', function () {
return {
restrict: 'A',
replace: true,
scope: {
activeInput: '='
},
link: function (scope, element, attrs) {
element.bind('click', function () {
scope.activeInput = attrs.setInput
})
}
}
});
而我的控制器:
function MyCtrl($scope) {
$scope.active = {
value : true
};
}
我的觀點是:
<h1 highlighter active-input="active.value" set-input="false">Click me to update Value in scope: {{active}}</h1>
所以我想做的是使用給定的屬性setInput更新scope.active。
我在這里做錯了什么想法?
使用element.bind
你可以離開Angular的領域,所以你需要告訴Angular發生了什么。 您可以使用scope.$apply
執行此操作scope.$apply
function:
scope.$apply(function(){
scope.activeInput = attrs.setInput;
});
這是一個更新的jsfiddle 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.