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>