2017-03-06 100 views
0

我在我的Angular.js网站上实现了一个md-autocomplete。搜索和选择工作,它更新显示的列表和一切。但由于某些原因,我无法阅读所选项目。无论我如何定义我的md-selected-item,它总是会保持null。 selectItem(item)中的项目和范围中的值都不会更改。md-autocomplete没有返回所选项目

AngularCode:

controllers.controller('UniSearch',function(SearchUniversity){ 
    var self = this; 
    self.query = query; 
    self.selectItem = selectItem; 

    function query (searchText) { 
     unis = SearchUniversity.get({ query : self.queryText }); 
     return unis.$promise.then(function(data) { 
      var thing = []; 
      // Just some code to reformat the data coming from the server 
      angular.forEach(data,function(value,key){ 
       if (angular.isUndefined(value.UNI_ID)){ 
        return 
       } 
       thing.push(value); 
      }); 
      console.log(thing) 
      return thing; 
     }); 
    } 

    function selectItem(item) { 
     console.log(item); 
    } 
}); 

HTML:

<div ng-controller="UniSearch as ctrl"> 
    <md-autocomplete 
     md-selected-item="ctrl.selected" 
     md-search-text="ctrl.queryText" 
     md-items="uni in ctrl.query(queryText)" 
     md-item-text="ctrl.selected.uni_international_name" 
     md-autoselect="true" 
     placeholder="Search for you city" 
     md-selected-item-change="ctrl.selectItem(item)"> 
     <md-item-template> 
      <span md-highlight-text="queryText" md-highlight-flags="^i"> 
       {{uni.uni_international_name}} 
      </span> 
     </md-item-template> 
    <md-not-found> 
     No universities matching "{{ctrl.queryText}}" were found. 
    </md-not-found> 
</md-autocomplete> 

</div> 

我缺少什么? THX

+0

有什么办法可以将它放在小提琴或codepen上,以方便帮助吗? –

+0

我有问题让小提琴工作。这是一个相对较大的代码库的一部分。只是想知道是否有什么明显的错误... – Jason

回答

1

是很难不运行的代码进行调试,但似乎有点怪你enumarate的itens专门在md-selected-itemmd-itens通话onther功能调用uni通过item

+0

工作。在这种情况下,并不期待这个名字重要。 – Jason

+0

乐意提供帮助,所以请您将它标记为正确答案? –

+0

我从来没想通过Luiz的意思,但我的回答是,md-selected-text和md-item-template需要解析到同一个东西,所以我有效地使用了'md-item-text =“uni.uni_international_name “'它为我工作。 –