通过指令分配新值的最佳方法是什么?双向数据绑定。
我在这里尝试了一个小提琴。 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。
我在这里做错了什么想法?
答案 0 :(得分:2)
使用element.bind
,你离开了Angular的领域,所以你需要告诉Angular发生了什么事。您可以使用scope.$apply
函数执行此操作:
scope.$apply(function(){
scope.activeInput = attrs.setInput;
});
这是一个updated jsfiddle。