Angular绑定到只读属性

时间:2015-04-20 17:36:30

标签: angularjs

如何在Angular中以高效的方式强制执行只读属性?

控制器:

function MyCtrl($scope) {
  $scope.clickCount = 0;
  $scope.incrementCount = function() {
    $scope.clickCount = $scope.clickCount + 1;
  }
}

查看:

<div ng-controller="MyCtrl">
  Clicked {{clickCount}} times
  <button ng-click="incrementCount()">Doober</button>
  <input type="text" ng-model="clickCount" /><!-- how do I prevent this -->
</div>

我知道我可以使clickCount成为一个getter函数getClickCount(),但是由于Angular必须在每个摘要周期调用此函数,这会否定性能?

http://jsfiddle.net/zb05om1k/


更新

我正在寻找一种方法,清楚地表明不应该直接更改只读属性,而是通过提供的功能。此外,阻止视图直接更改属性。

1 个答案:

答案 0 :(得分:3)

使用角度指令ng-readonly,它听起来就像听起来......

https://docs.angularjs.org/api/ng/directive/ngReadonly