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?
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.
L'index peut être comparé avec -1
pour vérifier si aiguille est trouvé dans meule de foin.
ng-if="haystack.indexOf(needle) > -1"
ng-if="select.name.indexOf('?') !== -1"
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
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>