Ng, если angular для строки содержит
У меня есть следующий Angular код:
<li ng-repeat="select in Items">
<foo ng-repeat="newin select.values">
{{new.label}}</foo>
Как я могу использовать условие ng-if для поиска определенного символа:
ng-if="select.name == '?'"
чтобы отображать только код, когда символ здесь? Значение, которое у меня есть, похоже на 88? 77, и числа динамические, но знак вопроса всегда есть, я не могу фильтровать на основе этого?
Ответы
Ответ 1
ES2015 UPDATE
ES2015 имеют String#includes
метод, который проверяет, содержит ли строка другую. Это можно использовать, если целевая среда поддерживает его. Метод возвращает true
, если игла находится в haystack else возвращает false
.
ng-if="haystack.includes(needle)"
Здесь needle
- это строка, которую нужно искать в haystack
.
См. Таблица совместимости браузера из MDN. Обратите внимание, что это не поддерживается IE и Opera. В этом случае можно использовать polyfill.
Вы можете использовать String#indexOf
, чтобы получить индекс иглы в стоге сена.
- Если игла отсутствует в стоге сена -1.
- Если игла присутствует в начале стога сена 0.
- Идет индекс, в котором находится игла.
Индекс можно сравнить с -1
, чтобы проверить, находится ли игла в стоге сена.
ng-if="haystack.indexOf(needle) > -1"
Ответ 2
Все методы javascript применимы с angularjs, потому что сам angularjs является структурой javascript, поэтому вы можете использовать indexOf() внутри директив angular
<li ng-repeat="select in Items">
<foo ng-repeat="newin select.values">
<span ng-if="newin.label.indexOf(x) !== -1">{{newin.label}}</span></foo>
</li>
//where x is your character to be found
Ответ 3
ng-if="select.name.indexOf('?') !== -1"
Ответ 4
Выполняет такие проверки в функции контроллера. Ваш HTML должен быть легко читаемой разметкой без логики.
Контроллер:
angular.module("myApp")
.controller("myController",function(){
var self = this;
self.select = { /* ... */ };
self.showFoo = function() {
//Checks if self.select.name contains the character '?'
return self.select.name.indexOf('?') != -1;
}
});
Пример страницы:
<div ng-app="myApp" ng-controller="myController as vm">
<p ng-show="vm.showFoo()">Bar</p>
</div>