簡體   English   中英

ng-src中的函數多次執行

[英]function in ng-src executed multiple times

我的清單很小,想為每個清單項目執行一個功能。 但是此函數多次執行,我不知道為什么。

HTML:

  <body  ng-controller="ListCtrl">
    <div>
        <ul ng-repeat="item in items">
          <li>{{item.name}}<img ng-src="{{test()}}"></li>
        </ul>
        {{counter}}
    </div>
  </body>

角度:

$scope.items = [
{name: 'foo', },
{name: 'bar', },
{name: 'baz', }
];
var counter= 0;
$scope.test= function(){
$scope.counter=counter++;
console.log("Executed");
}

為什么函數文本多次執行? 另請參見以下示例: http : //plnkr.co/edit/kxJZHCmFs4POd3SVtGZ8

這是預期的行為。 每當在html模板中遇到插值表達式{{}}都會創建一個監視來跟蹤該表達式中的更改。 $digest循環中,表達式可以計算數十次。
切勿在插值表達式中使用函數調用。 $scope定義的引用屬性。 在你的情況下應該是這樣的

$scope.testValue = $scope.test();

{{testValue}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM