考慮下面的例子:爲什麼AngularJS過濾器只運行一次?
angular.module('app', []).controller('TestController', function($scope) {
$scope.getText = function() {
console.log('getting text');
return 'text';
};
}).filter('text', function() {
return function() {
console.log('text filter');
return 'text';
};
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.2/angular.min.js"></script>
<div ng-app="app" ng-controller="TestController">
<p>{{getText()}}</p>
<p>{{'' | text}}</p>
</div>
注意,getText()
函數運行兩次而過濾器僅運行一次。我假設getText()
函數運行兩次以確保模型現在穩定。爲什麼過濾器的行爲不一樣?