web-dev-qa-db-fra.com

ng si avec angular pour string contient

J'ai le code angulaire suivant:

<li ng-repeat="select in Items">   
         <foo ng-repeat="newin select.values">
{{new.label}}</foo>

</ li>

Comment utiliser une condition ng-if pour rechercher un caractère spécifique:

ng-if="select.name == '?'" 

afficher uniquement le code lorsque le personnage est ici? La valeur que j'ai est comme 88? 77 et les nombres sont dynamiques mais le point d'interrogation est toujours là, je ne peux pas sembler filtrer basé sur cela?

27
Poiro

MISE À JOUR ES2015

ES2015 a String#includes qui vérifie si une chaîne en contient une autre. Ceci peut être utilisé si l'environnement cible le supporte. La méthode retourne true si la aiguille est trouvée dans meule de foin else renvoie false.

ng-if="haystack.includes(needle)"

Ici, needle est la chaîne à rechercher dans haystack.

Voir Compatibilité du navigateur table de MDN. Notez que ceci n'est pas supporté par IE et Opera. Dans ce cas, polyfill peut être utilisé.


Vous pouvez utiliser String#indexOf pour obtenir l'index de la aiguille dans botte de foin.

  1. Si aiguille _ n'est pas présent dans la meule de foin-1 est renvoyé.
  2. Si aiguille est présent au début de la meule de foin0 est renvoyé.
  3. Sinon, l'index auquel aiguille est retourné.

L'index peut être comparé avec -1 pour vérifier si aiguille est trouvé dans meule de foin.

ng-if="haystack.indexOf(needle) > -1" 
55
Tushar
ng-if="select.name.indexOf('?') !== -1" 
8
Mathew Berg

Toutes les méthodes javascript sont applicables avec angularjs, car angularjs est un framework javascript qui vous permet d’utiliser indexOf () dans les directives 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
8
Shubham Nigam

Faites des contrôles comme ça dans une fonction de contrôleur. Votre code HTML doit être un balisage facile à lire, sans logique.

Manette:

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;
    }
});

Exemple de page:

<div ng-app="myApp" ng-controller="myController as vm">
    <p ng-show="vm.showFoo()">Bar</p>
</div>
0
LionC