简体   繁体   English

md-autocomplete 查找数据,但下拉列表为空

[英]md-autocomplete finds data, but dropdown is empty

md-autocomplete with findUser method finds data, but dropdown is absolutely empty使用findUser方法md-autocomplete查找数据,但下拉列表绝对为空

How to fix mentioned empty dropdown (even no dropdown) issue?如何解决提到的空下拉(甚至没有下拉)问题?

Thank you!谢谢!

angular.module('orders', ['ngMaterial']);

angular.module('orders').config(function ($mdThemingProvider) {
    $mdThemingProvider.theme('default')
        .primaryPalette('green')
        .accentPalette('grey');
});

angular.module('orders').controller('order', function ($scope, $http) {
    var self = this;
    self.data = null;
    self.selectedItem = null;
    self.searchText = null;

    this.findUser = function (query) {
        return $http({
            method: 'POST',
            url: apiUrl() + 'user',
            data: query
        }).then(function (data) { return self.data = data; });
    };//...

Here is my full html page, check it, please这是我完整的 html 页面,请查看

<html>

<head>
    <script src="1.5.0/angular.js"></script>
    <script src="1.5.0/angular-aria.js"></script>
    <script src="1.5.0/angular-animate.js"></script>
    <script src="1.1.1/angular-material.min.js"></script>
    <link rel="stylesheet"
    href="1.1.1/angular-material.min.css" />
    <script src="js/application.js"></script>
    <script src="order/order.js"></script>
</head>

<body ng-app='orders' layout="column" ng-controller="order as ctrl">
    <div flex="85">
        <md-autocomplete flex="85" md-selected-item="ctrl.selectedItem" md-search-text="ctrl.searchText"
        md-items="item in ctrl.findUser(ctrl.searchText)" md-item-text="ctrl.formatUser(item)" md-delay="300"
        md-floating-label="Search supplier representative">
            <div layout="row" class="item" layout-align="start center">
                <span md-highlight-text="ctrl.searchText">{{item.lastName}}</span>
            </div>
        </md-autocomplete>
    </div>
</body>

</html>

Try this尝试这个

Call the findUser() method on 'ngModelChange' event in md-autocomplete.在 md-autocomplete 中调用 'ngModelChange' 事件的 findUser() 方法。 Create a new variable, let's say self.users=[] And assign the data from server to this array, then on the html, iterate this array.创建一个新变量,比如说 self.users=[] 并将服务器中的数据分配给这个数组,然后在 html 上,迭代这个数组。

The findUser function is returning incorrect data, instead use: findUser function 返回的数据不正确,请改用:

this.findUser = function (query) {
    return $http({
        method: 'POST',
        url: apiUrl() + 'user',
        data: query
    ̶}̶)̶.̶t̶h̶e̶n̶(̶f̶u̶n̶c̶t̶i̶o̶n̶ ̶(̶d̶a̶t̶a̶)̶ ̶{̶ ̶r̶e̶t̶u̶r̶n̶ ̶s̶e̶l̶f̶.̶d̶a̶t̶a̶ ̶=̶ ̶d̶a̶t̶a̶;̶ ̶}̶)̶;̶
    }).then(function (response) { return self.data = response.data; });
};//...

The $http.then method returns a response object of which data is a property. $http.then方法返回一个response object ,其中data是一个属性。

For more information, see有关详细信息,请参阅

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM