更改指令内的模型值

时间:2014-11-18 03:45:24

标签: angularjs

我在指令中有一个标签,点击这个锚点应该改变指令模型变量的状态,并刷新依赖于这个范围变量的指令视图。在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);
   });
});

哪一个更受欢迎?为什么?

1 个答案:

答案 0 :(得分:0)

我更喜欢第二种选择。代码属于控制器,即使是简单的赋值仍然是代码。