2017-08-28 154 views
0

我正在使用此代码搜索状态,因为用户在自动填充框中键入状态名称。我正在控制台上的结果,但是没有显示项文本HTMLmd-autocomplete未在HTML页面上呈现

<md-content class="md-padding">       
    <form ng-submit="$event.preventDefault()">        
     <md-autocomplete         
      md-no-cache="true" 
      md-selected-item="$ctrl.displayStates[$index].state"          
      md-search-text="$ctrl.searchText" 
      md-items="item in $ctrl.querySearch($ctrl.searchText)" 
      md-item-text="item.display" 
      md-min-length="0" 
      placeholder="Select Role?">{{item.display}} 
     <md-item-template> 
      <span md-highlight-text="$ctrl.searchText" md-highlight-flags="^i">{{item.display}}</span> 
     </md-item-template> 
     <md-not-found> 
      No role matching "{{$ctrl.searchText}}" were found. 
      <a ng-click="$ctrl.manageRoles('ADD')">Create a new one!</a> 
     </md-not-found> 
     </md-autocomplete> 
    </form> 
    </md-content> 

JS

对不起以前我已经发布了一些错误的JS代码

$ctrl.querySearch=function(query) {  
     var results = query ? $ctrl.states.filter(createFilterFor(query)) : $ctrl.states,deferred;  
      console.log("With my Testings --->",results); 
     return results; 
    } 

function loadAll() { 
    var allStates = 'Alabama, Alaska, Arizona, Arkansas, California, Colorado, Connecticut, Delaware,\ 
      Florida, Georgia, Hawaii, Idaho, Illinois, Indiana, Iowa, Kansas, Kentucky, Louisiana,\ 
      Maine, Maryland, Massachusetts, Michigan, Minnesota, Mississippi, Missouri, Montana,\ 
      Nebraska, Nevada, New Hampshire, New Jersey, New Mexico, New York, North Carolina,\ 
      North Dakota, Ohio, Oklahoma, Oregon, Pennsylvania, Rhode Island, South Carolina,\ 
      South Dakota, Tennessee, Texas, Utah, Vermont, Virginia, Washington, West Virginia,\ 
      Wisconsin, Wyoming'; 

    return allStates.split(/, +/g).map(function (state) { 
    return { 
     value: state.toLowerCase(), 
     display: state 
    }; 
    }); 
} 

function createFilterFor(query) { 
    var lowercaseQuery = angular.lowercase(query); 

    return function filterFn(state) { 
    return (state.value.indexOf(lowercaseQuery) === 0); 
    }; 

} 
+0

请邮寄'states'和功能''createFilterFor @ –

回答

0

更改为value

<md-content class="md-padding">       
    <form ng-submit="$event.preventDefault()">        
     <md-autocomplete         
      md-no-cache="true" 
      md-selected-item="displayStates[$index].state"          
      md-search-text="searchText" 
      md-items="item in querySearch(searchText)" 
      md-item-text="item.value" 
      md-min-length="0" 
      placeholder="Select Role?">{{item.value}} 
     <md-item-template> 
      <span md-highlight-text="searchText" 
       md-highlight-flags="^i">{{item.value}}</span> 
     </md-item-template> 
     <md-not-found> 
      No role matching "{{searchText}}" were found. 
      <a ng-click="manageRoles('ADD')">Create a new one!</a> 
     </md-not-found> 
     </md-autocomplete> 
    </form> 
    </md-content> 

Demo Codepen


我省略$ctrl仅用于测试目的

+0

马克西姆Shoustin对不起以前我已经发布了一些错误的JS代码,现在我已经发布正确的,所以我不能去item.value –

+0

@VishalArthamwar更新:https://codepen.io/Fess-81/pen/prxeMr?editors=1010 –

+0

@ Maxim Shoustin代码似乎没问题,但我使用的是Angular Library 1.5.8和素材库1.1.4和你已经显示的代码笔是使用素材库1.0.0和角1.4.8是造成问题 –