ФИЛЬТР в шаблонезапутаться, когда фильтр оценки В angularJS
Использование фильтра в шаблоне вида будет пересчитывать фильтр на каждом переваривать От углового документа.
Даже если значение выражения не меняется, оно переоценивается (или говорят, что вход для фильтра не изменяется). То, что я знаю для каждого выражения, будет установлен. Во время цикла дайджеста он проверяет любое изменение значения выражения, если да, чем будет срабатывать наблюдатель. И выражение будет переоцениваться. Но почему фильтр пересматривается на каждом дайджесте, даже когда ввод не меняется.
Функция фильтра должна быть чистой функцией, что означает, что она должна быть без атак и идемпотентна. Угловая зависимость от этих свойств и выполняет фильтр только при изменении входов в функцию. От углового док.
Раньше он говорил, что будет переоценивать каждый дайджест во втором жирном тексте, который они говорят всякий раз, когда вводится изменение. Какая разница между двумя. https://docs.angularjs.org/guide/filter
Update
Я сделал reveraFilter
app.js Файл
angular.module('todoApp')
.filter('reversa', function() {
return function(input, condition) {
input = input || '';
var out = '';
for (var i = 0; i < input.length; i++) {
out = input.charAt(i) + out;
}
return out;
};
})
.controller('MainCtrl', function($scope, reversaFilter) {
$scope.todo = '';
$scope.text = 'shriyansh';
// $scope.text = reversaFilter($scope.text);
});
Частичный HTML
<div class="container">
<h2>My todos</h2>
<input type="text" ng-model="todo">
<div>{{text|reversa}}</div>
</div>
я поставил точку останова внутри Ретур n функционал фильтра. Когда я изменяю значение переменной todo, это также код фильтра выполнения. Но я помещал фильтр в текст, чтобы не делать это.
Квалифицированные средства пересматривают средства для проверки того, какое выражение изменилось или нет. –
Да, но это точка, функция фильтра не является выражением, а угловое предполагает, что они не влияют на другие значения, они строго изменяют способ отображения уже оцененного ввода. – Claies