1

我有一个 md-autocomplete 字段:

<md-autocomplete md-selected-item="videoInfo.lineUp[1]" md-items="item in searchQuery(searchText)" md-search-text="searchText" md-item-text="item.display"></md-autocomplete>

md-items我填充

$scope.searchQuery = function (searchText) {
    var users = [];
    angular.forEach($scope.users,
        function (value, key) {
            // value = user object
            // key = userId
            var dN = value["display_name"];
            if (dN) {
                var obj = {};
                obj[key] = value;
                obj["display"] = dN;
                if (dN.toLowerCase().indexOf(searchText.toLowerCase()) !== -1) {
                    users.push(obj);
                }
            }
        });
    return users;
}

它的工作原理是我可以在输入字段中键入并加载建议,但是下拉列表是空的,即它没有display_name像我预期的那样显示。当我选择其中一个选项时,display_name所选项目的 确实会显示在输入字段中。有什么想法我可能做错了吗?

4

1 回答 1

2

您需要定义如何在标签的下拉列表中显示信息。<md-autocomplete>这是一个例子 - CodePen

标记

<div ng-controller="AppCtrl as vm" ng-cloak="" ng-app="MyApp">
    <md-autocomplete flex
                 md-selected-item="text"
                 md-no-cache="true"
                 md-items="item in vm.items()"
                 md-min-length="0">
        <span id="autocompleteText" md-highlight-text="searchText">{{item}}</span>
    </md-autocomplete>
</div>

https://material.angularjs.org/latest/demo/autocomplete

于 2016-09-10T12:10:11.213 回答