wake-up-neo.net

ng wenn mit winkel für string enthalten

Ich habe den folgenden Winkelcode:

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

</ li>

Wie kann ich eine ng-if-Bedingung verwenden, um nach einem bestimmten Zeichen zu suchen:

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

den Code nur anzeigen, wenn das Zeichen hier ist? Ich habe einen Wert von 88 bis 77 und die Zahlen sind dynamisch, aber das Fragezeichen ist immer vorhanden. Ich kann nicht danach filtern.

27
Poiro

ES2015 UPDATE

ES2015 hat eine String#includes Methode, die prüft, ob eine Zeichenfolge eine andere enthält. Dies kann verwendet werden, wenn die Zielumgebung dies unterstützt. Die Methode gibt true zurück, wenn die Nadel in Heuhaufen gefunden wird, andernfalls false.

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

Hier ist needle die Zeichenfolge, die in haystack gesucht werden soll.

Siehe Browserkompatibilität Tabelle aus MDN. Beachten Sie, dass dies nicht von IE und Opera unterstützt wird. In diesem Fall kann polyfill verwendet werden.


Sie können String#indexOf verwenden, um den Index der Nadel in Heuhaufen abzurufen.

  1. Wenn die Nadel nicht im Heuhaufen-1 enthalten ist, wird zurückgegeben.
  2. Wenn Nadel am Anfang des Heuhaufenvorhanden ist, wird _ 0 zurückgegeben.
  3. Andernfalls wird der Index zurückgegeben, an dem Nadel ist.

Der Index kann mit -1 verglichen werden, um zu prüfen, ob Nadel in Heuhaufen gefunden wird.

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

Alle Javascript-Methoden sind auf anglejs anwendbar, da anglejs selbst ein Javascript-Framework ist, sodass Sie indexOf () innerhalb von winkligen Anweisungen verwenden können

<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

Überprüfen Sie dies in einer Controller-Funktion. Ihr HTML-Code sollte ohne Logik leicht lesbar sein.

Regler:

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

Seitenbeispiel:

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