我的问题如下:我有一个具有隔离范围的指令,我想将“点击”回调绑定到元素。长话短说,我想做类似的事情:
...
<div test value='name' call='reset()'></div>
...
app.directive('test', function() {
return {
template: '<button>{{value}}</button>',
scope: {
value: '=',
call: '&'
},
link: function(scope, elem, attrs){
elem.bind('click', function(){
scope.call();
})
}
}
});
var myCtrl = function($scope){
$scope.name = 'John';
$scope.reset = function(){
$scope.name = "Some random name";
console.log('reset name!');
};
}
唉,这不起作用 - 它触发了reset()
函数,但控制器的范围没有改变($scope.name
保持不变)。但是,如果我在模板中进行绑定:
template: '<button ng-click="call()">{{value}}</button>'
一切正常。问题是在实际任务中我不使用模板选项,所以我想问一下是否有办法在链接函数中进行这种绑定?
谢谢!