我在指令中有一个标签,点击这个锚点应该改变指令模型变量的状态,并刷新依赖于这个范围变量的指令视图。在Angular中有两种实现方法:
1)
<my-directive>
<a ng-click="myProperty = 'foo'">bar</a>
</my-directive>
指令控制器内部:
$scope.$watch('myProperty', function(value) {
myPromise.then(function() { //the promise exists in real code but does not have anything to do with the question itself
updateComponent(value);
});
});
2)
<my-directive>
<a ng-click="handleMyPropertyChange('foo')">bar</a>
</my-directive>
指令控制器内部:
$scope.handlePropertyChange = function(value) {
$scope.myProperty = value;
myPromise.then(function() {
updateComponent(value);
});
});
哪一个更受欢迎?为什么?
答案 0 :(得分:0)
我更喜欢第二种选择。代码属于控制器,即使是简单的赋值仍然是代码。