2017-01-11 16 views
0

私はいくつかの連絡先を記載しています。入力された値$ queryに従ってmd-listをフィルタリングしたいとします。

<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> 

help.thanksにはうれしいでしょう。

+0

'$ query'はどこに設定されていますか?文字列? 'ctrl.allContacts'はオブジェクトですか? – tasseKATT

+0

ここでコードフォームを使用しました。https://material.angularjs.org/latest/demo/chips .ctrl.allContacts =オブジェクトの配列。私は$クエリがどこから取るか分からない。 – Serhiy

答えて

0

私は$クエリがあなたのコントローラの中に注入されたものだと仮定します。 ビューで使用するには、コントローラの$ scopeにバインドする必要があります。

あなたのコントローラの中に次の行を追加してください。$ queryはstring型です。 (つまり、値または定数)

私の気持ちは、$ queryは実際には何らかのサービスです。その場合、getQuery()などのクエリを取得するためのアクセス関数があります。この場合は、コントローラ内に次のコードを追加します。それは$クエリが何であるかを説明していないよう

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

してから、最後が、少なくとも質問がありますのでご注意ください

filter: query 

にあなたのHTMLを変更しないが、私はこのことができます願っています。..やや広い..歓声

+0

ありがとうございます。私はそれが一種のサービスだとも思っています。コントローラに$ queryを注入しました。あなたは説明したようでしたが、受け取った: "エラー:[$ injector:unpr]不明なプロバイダ:$ queryProvider < - $ query" – Serhiy

関連する問題