У меня есть простой ng-repeat с фильтром на нем ниже. Однако в моем html я вижу свою логику в html. Есть ли способ скрыть это?
<div ng-repeat="row in rowData.players| filter:{name:"Dan"})">
{{row.name}}
</div>
Когда я смотрю на свою страницу, хотя все мои повторные divs имеют в себе вышеупомянутое логическое выражение. Есть ли директива или передовая практика, чтобы скрыть это?
<div ng-repeat="row in rowData.players| filter:{name:'Dan'})"> {{row.name}} </div>
Попробуйте использовать одинарные кавычки вместо двойных кавычек.
Вместо фильтрации в вашем html-шаблоне вы можете создать переменную с областью действия, которая содержит эти отфильтрованные значения, а затем перебирать их. Таким образом, пользователи, которые проверяют ваш DOM, не будут видеть отфильтрованные значения.
Например, в вашем контроллере вы можете:
.controller('SomeCtrl', function($scope, $filter) {
$scope.rowData.players = $filter('someFilter')(filterArgs1, filterArgs2, etc);
})
У вас есть дополнительный ")" в конце вашего:
"row in rowData.players| filter:{name:'Dan'})"
не уверен, что он должен быть там или нет, проверьте его, также @Divyesh прав, попробуйте использовать простые тики '' вместо "", когда уже заключен в doble ticks