我想创建一个具有两个API调用结果的对象,并将其绑定到范围。到目前为止我已经
了export class MainController {
constructor ($http) {
'ngInject';
this.$http = $http;
this.getUsers();
this.getPlayers();
};
getUsers() {
this.$http.get('/api/users').then((resp) => {
this.users = resp.data;
})
};
getPlayers() {
this.$http.get('/api/players').then((resp) => {
this.players = resp.data;
})
};
}
我现在可以通过main.players
和main.users
访问视图中的用户和玩家。我对范围感到非常困惑。我如何等待两个promises解析然后将变量绑定到范围?
我尝试了$q.all()
,但即使我设置self.users
self.players
或var self = this;
答案 0 :(得分:1)
您需要做的是在resolve
上使用ngRoute
在加载路由之前加载用户,或者使用$q.all
等待所有内容加载并保持视图呈现:< / p>
export class MainController {
constructor ($http, $q) {
'ngInject';
this.$http = $http;
this.isDone = false;
$q.all([this.getUsers(), this.getPlayers()]).then(() => this.isDone = true);
};
...
}
然后在视图端使用ng-if="myCtrl.isDone"
。