2016-08-02 3 views
-1

У меня есть эти нг-повторить, что я показываю расколоть более трех строк для ясности:Как я могу динамически ограничить данные, отображаемые в ng-повторе?

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

На моей форме у меня есть поле phs.keywordRange

Есть ли способ, что я могу сделать так, чтобы строки возвращается фильтруются следующим образом:

  • Когда phs.keywordRange равно нулю или пустая строка, все строки показаны
  • Когда phs.keywordRange является A то только строки где row.keyword начинается с A показаны
  • Когда phs.keywordRange является ABC тогда только те строки, где row.keyword начинается с ABC показаны
+0

Вы всегда можете создать свой собственный фильтр. [Typeahead] (http://angular-ui.github.io/bootstrap/#/typeahead) уже делает почти то же самое, что было бы неплохо начать, если вам нужна помощь в определении того, как начать. –

ответ

1

Сделайте свой собственный фильтр, как this fiddle. Изменение значения $ scope.keywordRange будет соответствующим образом обновлять список.

в качестве ярлыка:

.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' 
    ]; 
} 

и HTML

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

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

Спасибо. Я проверю это и в ближайшее время обновлю ответ. –

+0

Я получаю эту ошибку: значение [i] .startsWith не является функцией. Я думаю, это потому, что мои строки являются объектами, и каждый объект имеет свойство .keyword. Поэтому я должен принять это во внимание. –

+0

Да, используйте значение [i] .keyword – tpsilva