然后使用md-autocomplete显示未定义的消息

时间:2018-03-28 05:34:24

标签: angularjs angular-material

我的控制器:

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: {}"

我不知道我在这段代码中犯了什么错误。请指导我。

提前致谢: - )

1 个答案:

答案 0 :(得分:0)

md-items =&#34; myctrl.searchuom(myctrl.searchtext)&#34;中的项目。 md-items应该像ng-repeat一样循环遍历你的内容。 我看到你目前拥有searchtext = null的值。 这会给你看错。

要解决,请代替:myctrl.searchuom(myctrl.searchtext),放置希望循环的数组。