2016-06-08 3 views
0

Я пытаюсь получить md-autocomplete от angular-material библиотека для работы, документация немного трудно понять.md-autocomplete не фильтрует?

Вот мой HTML

<md-autocomplete 
    md-items="lawyer in cdc.lawyers" 
    md-selected-item-change="testing(lawyer)" 
    md-min-length="0" 
    md-item-text="lawyer.name" 
    md-search-text="cdc.lawyerSearchText" 
    md-search-text-change="cdc.triggerQuery(cdc.lawyerSearchText);" 
    placeholder="Search for lawyer"> 
    <md-item-template> 
    <span md-highlight-text="cdc.lawyerSearchText" md-highlight-flags="^i">{{lawyer.name}}</span> 
    </md-item-template> 
    <md-not-found> 
    No states matching "{{lawyer.name}}" were found. 
    </md-not-found> 
</md-autocomplete> 

и вот Javascript

this.lawyerSearchText = ''; 

this.triggerQuery = function(query){ 
    console.log(query); 
    this.lawyerSearchText = query; 
} 

Он отображает все lawyers, но не фильтрует их, если я типа тарабарщину на входе.

enter image description here

Что я здесь делаю неправильно?

+0

Запрашивается ли ваш запрос в консоли из функции triggerQuery? –

+0

Да, это символы, введенные в –

ответ

1

Я прохожу население списка с помощью функции фильтра, так что ваш md-items будет:

md-items="lawyer in cdc.triggerQuery(cdc.lawyers") 

, а затем я обычно делаю вызов $ HTTP для получения отфильтрованного списка, но в вашем случае Я думаю, что в вашей функции triggerQuery вы вернете фильтрованный массив. Что-то вроде:

this.triggerQuery = function(query){ 
    return this.lawyers.filter(function(lawyer) { return lawyer.indexOf(query)>-1) }) 
} 

, но где вы используете запрос, я использую значение ng-model автозаполнения привязан. Если этого недостаточно, опубликуйте все соответствующие части вашего контроллера, и я могу расширить это.

Смежные вопросы