2016-08-02 5 views
-1

Ich habe diese ng-repeat, die ich mehr als drei Zeilen für Klarheit hier aufgespalten zeigen:Wie kann ich Daten, die in einer ng-Wiederholung angezeigt werden, dynamisch begrenzen?

ng-repeat="row in phs.phrasesView = 
      (phs.phrases | orderBy:phs.phrasesOrderBy[phs.phrasesOrderById] 
      .key:phs.phrasesSortDirectionId == 1)"> 

Auf meinem Formular habe ich ein Feld phs.keywordRange

Gibt es eine Möglichkeit, dass ich es so um die Zeilen zu machen zurück gefiltert werden, wie folgt: erst dann Reihen

  • Wenn phs.keywordRange null oder eine leere Zeichenfolge ist, werden alle Zeilen
  • gezeigt, wenn phs.keywordRange A ist wo row.keyword mit A beginnt sind
  • gezeigt Wenn phs.keywordRange ABC ist dann nur Zeilen, in denen row.keyword mit ABC beginnt sind
  • , wie this fiddle gezeigt
+0

Sie können jederzeit Ihre eigenen Filter erstellen. [Typeahead] (http://angular-ui.github.io/bootstrap/#/typeahead) tut das schon fast genau, also wäre das ein guter Startpunkt, wenn du Hilfe brauchst, um herauszufinden, wie man startet. –

Antwort

1

Ihre eigenen Filter machen. Durch Ändern von $ scope.keywordRange wird die Liste entsprechend aktualisiert.

als Abkürzung

.filter('keywordRange', function() { 
    return function(value, keyword) { 

    var out = []; 

    if(!keyword) { 
    return value; 
    } 

    for(var i = 0; i < value.length; i++) { 
    if(value[i].startsWith(keyword)){ 
     out.push(value[i]); 
    } 
    } 

    return out; 
    }; 
}); 

function MyCtrl($scope) { 
    $scope.keywordRange = 'ti'; 

    $scope.lines = [ 
    'rest1', 'rest2', 'tiago', 'pedro', 'america' 
    ]; 
} 

und die html

<div ng-controller="MyCtrl"> 
    <div ng-repeat="line in lines | keywordRange:keywordRange"> 

    <p>{{line}}</p> 
    </div> 
</div> 
+0

Danke. Ich werde das überprüfen und Ihre Antwort bald aktualisieren. –

+0

Ich erhalte diesen Fehler: value [i] .startsWith ist keine Funktion. Ich denke, das liegt daran, dass meine Zeilen Objekte sind und jedes Objekt eine Eigenschaft .keyword hat. Also muss ich das berücksichtigen. –

+0

Ja, benutze value [i] .keyword – tpsilva

Verwandte Themen