Javascript 异步n选项
老实说,我不知道我在Angular中做什么,所以这可能是很糟糕的编码实践。在任何情况下,我都试图将一些数据异步加载到Javascript 异步n选项,javascript,angularjs,asynchronous,angularjs-ng-options,Javascript,Angularjs,Asynchronous,Angularjs Ng Options,老实说,我不知道我在Angular中做什么,所以这可能是很糟糕的编码实践。在任何情况下,我都试图将一些数据异步加载到元素中 以下是HTML模板: <div ng-include src="'scripts/common/toolbar/toolbar.html'"></div> <div class="wrapper"> <div ng-include src="'scripts/common/header/pageheader.html'"&g
元素中
以下是HTML模板:
<div ng-include src="'scripts/common/toolbar/toolbar.html'"></div>
<div class="wrapper">
<div ng-include src="'scripts/common/header/pageheader.html'"></div>
<label>Advertisers:
<select ng-model="selectedAdvertiser" ng-options="adv as adv.name for adv in advertisers"></select>
</label>
</div>
从user.getAdvancers()返回的数据如下所示:
[{name:'aaaa',id:0},{name:'bbbb',id:1}]代码>
最后,这里是userService
var userPromise,
getUser = function() {
if(!userPromise) {
var deferred = $q.defer();
userPromise = deferred.promise;
deferred.resolve(User.createFromServerData(null));
}
return userPromise;
};
我试过使用$timeout、$scope、$apply、$scope、$evalAsync……我几乎没有主意了。我根本无法获取任何数据以显示在select中。任何帮助都将不胜感激!谢谢。我想这应该行得通:
userService.getUser().then(function(user) {
$scope.advertisers = user.getAdvertisers();
});
或者,如果getadvisors
返回承诺:
userService.getUser().then(function(user) {
user.getAdvertisers().then(function (advertisers) {
$scope.advertisers = advertisers;
});
});
没关系。这是我检索数据的方式的问题。哦 嘿,是的,我也试过了(你的第一个代码)。我得到了一个空选项,看起来是这样的:
我认为你应该发布你的答案(修复),以利于其他人?
userService.getUser().then(function(user) {
user.getAdvertisers().then(function (advertisers) {
$scope.advertisers = advertisers;
});
});