2017-01-11 2 views
0

Я перечисляю некоторые контакты. и хотите отфильтровать md-list в соответствии с введенным значением $ query.

<md-contact-chips 
       ng-model="ctrl.contacts" 
       md-contacts="ctrl.delayedQuerySearch($query)" 
       md-contact-name="name" 
       md-contact-image="image" 
       md-contact-email="email" 
       md-require-match="true" 
       md-highlight-flags="i" 
       filter-selected="ctrl.filterSelected" 
       placeholder="To"> 
     </md-contact-chips> 

     <md-list class="memberList"> 
      <md-subheader class="md-no-sticky">Contacts</md-subheader> 

       <md-list-item class="md-2-line contact-item" ng-repeat="(index, contact) in ctrl.allContacts | filter: $query" <!--need set filter according to enrered value--> 
           ng-if="ctrl.contacts.indexOf(contact) < 0"> 

        <img class="md-avatar" 
         ng-src="assets/images/avatars/avatar-1.png" 
         src="assets/images/avatars/avatar-1.png"> 
        <div class="md-list-item-text compact"> 
         <h3>{{contact.name}}</h3> 
         <p>{{contact.email}}</p> 
        </div> 
       </md-list-item> 
     </md-list> 

будет рад за помощь.

+0

Где задан '$ query' и что это такое? Строка? Является ли 'ctrl.allContacts' объектом? – tasseKATT

+0

Я использовал форму кода здесь https://material.angularjs.org/latest/demo/chips .ctrl.allContacts = массив объектов. Я не знаю, откуда берется запрос. – Serhiy

ответ

0

Я предполагаю, что $ query - это то, что вводится внутри вашего контроллера. Чтобы использовать его в представлении, вам необходимо связать его с $ scope контроллера.

внутри вашего контроллера добавьте следующую строку, в которой запрашивается $ query из строки типа. (То есть. Значение или константа)

$scope.query = $query; 

У меня такое ощущение, что $ запрос фактически услуга какой-то. если это так, у него будет какая-то функция доступа, чтобы получить такой запрос, как getQuery(), предполагая, что в этом случае добавьте следующий код внутри вашего контроллера.

$scope.query = $query.getQuery(); 
$scope.$watch(function() { 
      return $query.getQuery(); 
     }, function(query){ 
      $scope.query = query; 
     }); 

, а затем последний, но не в последнюю очередь изменить HTML для

filter: query 

обратите внимание на этот вопрос несколько широка, как это не объясняет, что $ запрос .. я надеюсь, что это помогает .. веселит

+0

Спасибо. Я также считаю, что это своего рода услуга. вводил $ query в контроллер. и сделал, как вы объяснили, но получил: «Ошибка: [$ injector: unpr] Неизвестный поставщик: $ queryProvider <- $ query" – Serhiy

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