我的控制器:
myapp.controller('myctrl', function ($timeout, $q) {
var self = this;
self.uom = loaduom();
self.selecteditem = null;
self.searchtext = null;
self.querysearch = searchuom;
function searchuom(query) {
var result = query ? uom.filter(createfilter(query)) : uom;
var deferred = $q.defer;
$timeout(function () { deferred.resolve(result); }, Math.random() * 1000, false);
}
function loaduom() {
var itms = ' Pcs ,Pak ,Bag ,Box ,Ltr ,Mltr ,c.m. ,m.m ,mtr ,kg ,gms ,sqft ';
return itms.split(/,+/g).map(function (uom) {
return {
value: uom.toLowerCase,
display: uom
};
})
}
function createfilter(query) {
var lowercase = angular.lowercase(query);
return function filterfn(uom) {
return uom.value.selecetdindexof(lowercase) === 0;
}
}
});
查看:
<body ng-app="myapp" ng-controller="myctrl">
<form ng-submit="$event.preventDefault()"name="srchform">
<md-autocomplete
required
md-input-name="autocompleteField"
md-input-minlength="2"
md-input-maxlength="18"
md-no-cache="myctrl.noCache"
md-selected-item="myctrl.selecteditem"
md-search-text="myctrl.searchtext"
md-items="item in myctrl.searchuom(myctrl.searchtext)"
md-item-text="item.display"
md-require-match=""
md-floating-label="sample DD list">
<md-item-template>
<span md-highlight-text="">{{item.display}}</span>
</md-item-template>
</md-autocomplete>
</form>
嗨,我是棱角分明材料设计的初学者。现在我只是在教程中尝试 md-autocomplete 指令。
我在控制台上看到这样的错误,
angular.min.js:124 TypeError: Cannot read property 'then' of undefined
at me (angular-material.min.js:14)
at ve (angular-material.min.js:14)
at angular-material.min.js:13
at angular.min.js:137
at m.$digest (angular.min.js:148)
at b.$apply (angular.min.js:151)
at Object.$$debounceViewValueCommit (angular.min.js:300)
at Object.$setViewValue (angular.min.js:299)
at HTMLInputElement.l (angular.min.js:183)
at jg (angular.min.js:40) "Possibly unhandled rejection: {}"
我不知道我在这段代码中犯了什么错误。请指导我。
提前致谢: - )
答案 0 :(得分:0)
md-items =&#34; myctrl.searchuom(myctrl.searchtext)&#34;中的项目。 md-items应该像ng-repeat一样循环遍历你的内容。 我看到你目前拥有searchtext = null的值。 这会给你看错。
要解决,请代替:myctrl.searchuom(myctrl.searchtext),放置希望循环的数组。