【问题标题】:md-autocomplete don't wait data from a service. How to resolve?md-autocomplete 不要等待来自服务的数据。如何解决?
【发布时间】:2016-04-14 21:20:35
【问题描述】:

我想构建一个 md-autocomplete,但我无法显示选项。始终显示只有在没有插入的输入选项时才应启动的错误消息。
我的服务正确返回,我的控制器只有在收到服务数据后才返回。

HTML:

<md-autocomplete placeholder="Postal-Code"
                 md-selected-item="selectedItem" 
                 md-no-cache="true"
                 md-search-text="searchText" 
                 md-items="item in welcomeScope.getPostalCode(searchText)"
                 md-item-text="item.cp4Code">
  <md-item-template>
    <span md-highlight-text="searchText">{{item.cp4Code}}</span>
  </md-item-template>
  <md-not-found>
    ERROR
  </md-not-found>
</md-autocomplete>

控制器:

welcomeScope.getPostalCode = function (key){
   welcomeSvc.getAllPostalCodes(key).then(function(data){
   return data.result.returnvalue;
});  

服务:

var getAllPostalCodes = function(key){
        return Restangular.all(...).post(JSON.stringify()).then(function(response){
            var obj = angular.fromJson(response);
            if (!obj.isError) {
                return obj;
            }
            else{
                console.log("ERROR!");
            }
        });
};

控制器中返回的示例结果是:

[  
  {"id":00001,"cp4Code":"1000","cp3Code":"111","postalDesignator":"aaaaa"},  
  {"id":00002,"cp4Code":"1000","cp3Code":"112","postalDesignator":"bbbbb"},  
  ...      
]

【问题讨论】:

    标签: javascript html angularjs md-autocomplete


    【解决方案1】:

    welcomeScope.getPostalCode 没有返回值,从 promise 内部返回不会影响外部函数。缩进让这更清楚一点,像这样:

    welcomeScope.getPostalCode = function (key){
        welcomeSvc.getAllPostalCodes(key).then(function(data){
            return data.result.returnvalue;
        });
    };
    

    如果您不返回来自welcomeSvc.getAllPostalCodes 的承诺,那么md-autocomplete 将无法获得结果。

    welcomeScope.getPostalCode = function (key){
        return welcomeSvc.getAllPostalCodes(key).then(function(data){
            return data.result.returnvalue;
        });
    };
    

    【讨论】:

      猜你喜欢
      • 2022-08-01
      • 1970-01-01
      • 2017-09-20
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-09
      • 1970-01-01
      相关资源
      最近更新 更多