2015-10-19 49 views
1

我想使用Angular Material <md-chips>來創建一個自動完成功能。 我有以下的html:

 <md-chips ng-model="programs" md-require-match="true"> 
     <md-autocomplete 
      md-selected-item="selectedItem" 
      md-search-text="searchText" 
      md-items="item in querySearch(searchText)" 
      md-item-text="item.name" 
      placeholder="Target programs" 
      md-autoselect="true"> 
      <span md-highlight-text="searchText">{{item.name}}</span> 
     </md-autocomplete> 
     <md-chip-template> 
      <span> 
      <strong>{{$chip.name}}</strong> 
      </span> 
     </md-chip-template> 
    </md-chips> 

和方法querySearch

   // Search for programs 
       scope.querySearch = function(query) { 
        if (typeof pauseMonitor !== 'undefined') { 
         $timeout.cancel(pauseMonitor); 
        } 

        pauseMonitor = $timeout(function() { 
         Programs.getQuery(query) 
         .then(function(data){ 
          return data.data.campaigns; 
         }); 
        }, 250); 
       }; 

我的問題是,該方法找到良好的比賽後,我在自動完成輸入類型,但瀏覽器不顯示它們。我認爲這可能是因爲要求,但我不知道如何解決。

謝謝。

回答

0

在我看來,你忘了返回結果,你返回data.data.campaings,但你也必須返回承諾。

你可以試試這個:

// Search for programs 
scope.querySearch = function(query) { 
    if (typeof pauseMonitor !== 'undefined') { 
     $timeout.cancel(pauseMonitor); 
    } 

    pauseMonitor = $timeout(function() { 
     return Programs.getQuery(query) 
     .then(function(data){ 
      return data.data.campaigns; 
     }); 
    }, 250); 
    return pauseMontitor; 
}; 
+0

似乎工作!非常感謝! – Adel