angularjs - 有没有办法避免/解决 Angularjs 计算属性每次运行两次?

标签 angularjs

http://jsfiddle.net/V9sYB/50/

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.6/angular.min.js"></script>
<div ng-app>
  <div ng-controller="SomeCtrl">
      <input ng-model="textProperty"/>      
      <span>{{computedProperty()}}</span> 
  </div>
</div>

脚本

function SomeCtrl($scope) {
  $scope.textProperty = "initial";
    var times = 0;
    $scope.computedProperty = function(){
        console.log(++times);
        return $scope.textProperty+ " asdf";
    };
}

有没有办法避免/解决 Angularjs 计算属性每次运行两次?

或者我是否必须为我永远不会在另一个 Controller 上重用的指令编写指令?

最佳答案

当您对 {{ 使用插值时,实际上是在其中的表达式上创建了一个监视。由于 angularjs 在脏检查主体上工作,因此它在摘要循环期间多次重新评估表达式,您无法控制插值内定义的任何表达式运行的次数。

因此,这样的计算属性\方法应该没有副作用,因为它被多次调用,而您作为开发人员无法控制。

关于angularjs - 有没有办法避免/解决 Angularjs 计算属性每次运行两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20879084/

相关文章:

javascript - 如何扩展 angularjs 中的默认指令?

javascript - AngularJS $http.get() 总是返回错误?

AngularJS ng-class 不应用 css 样式

javascript - 突出显示 HTML 中的特定单词

javascript - 无法将一个应用程序模块注入(inject)另一个 AngularJS

angularjs - Angular : $interval undefined

javascript - Angularjs 使用 url 重定向到状态

javascript - 何时获取高度 Angular 填充的 div

javascript - ng-repeat 不显示最后一段文字

javascript - AngularJS $http 结果与 promise