md-autocomplete 不等待来自服务的数据。如何解决?
md-autocomplete don't wait data from a service. How to resolve?
我想构建一个 md-autocomplete,但我无法显示选项。始终显示只有在没有插入的输入选项时才应启动的错误消息。
我的服务 return 正确,而我的控制器仅在收到服务数据后 return。
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!");
}
});
};
在控制器中 return 的示例结果是:
[
{"id":00001,"cp4Code":"1000","cp3Code":"111","postalDesignator":"aaaaa"},
{"id":00002,"cp4Code":"1000","cp3Code":"112","postalDesignator":"bbbbb"},
...
]
welcomeScope.getPostalCode
没有 return 值,return 从 promise 内部调用不会影响外部函数。缩进使它更清晰一点,像这样:
welcomeScope.getPostalCode = function (key){
welcomeSvc.getAllPostalCodes(key).then(function(data){
return data.result.returnvalue;
});
};
如果您不return welcomeSvc.getAllPostalCodes
的承诺,那么 md-autocomplete
没有任何方法可以得到结果。
welcomeScope.getPostalCode = function (key){
return welcomeSvc.getAllPostalCodes(key).then(function(data){
return data.result.returnvalue;
});
};
我想构建一个 md-autocomplete,但我无法显示选项。始终显示只有在没有插入的输入选项时才应启动的错误消息。
我的服务 return 正确,而我的控制器仅在收到服务数据后 return。
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!");
}
});
};
在控制器中 return 的示例结果是:
[
{"id":00001,"cp4Code":"1000","cp3Code":"111","postalDesignator":"aaaaa"},
{"id":00002,"cp4Code":"1000","cp3Code":"112","postalDesignator":"bbbbb"},
...
]
welcomeScope.getPostalCode
没有 return 值,return 从 promise 内部调用不会影响外部函数。缩进使它更清晰一点,像这样:
welcomeScope.getPostalCode = function (key){
welcomeSvc.getAllPostalCodes(key).then(function(data){
return data.result.returnvalue;
});
};
如果您不return welcomeSvc.getAllPostalCodes
的承诺,那么 md-autocomplete
没有任何方法可以得到结果。
welcomeScope.getPostalCode = function (key){
return welcomeSvc.getAllPostalCodes(key).then(function(data){
return data.result.returnvalue;
});
};