我对AngularJS(第1.6版)相当新,所以这可能是一个愚蠢的问题。
我正在尝试创建一个将在我的应用程序主页上使用的组件。没有数据会传递给它,而是我会进行API调用。
这是迄今为止的样子:
class MyInboxController {
constructor(api) {
this.api = api;
this.$onInit = () => {
this.count = this.api.getAllMessages().then(function(data) { data.length });
}
}
}
MyInboxController.$inject = ['api'];
export const myInboxComponent = {
template: require('./my-inbox.html'),
controller: MyInboxController
};
基本上,此组件将存在于导航中我的应用程序的主页上。我的问题是,当我在oninit上调用api服务时,它似乎永远不会及时获取数据以便加载页面。任何建议都会很棒。
答案 0 :(得分:0)
代码可能应该是:
class MyInboxController {
constructor(api) {
this.api = api;
this.$onInit = () => {
api.getAllMessages().then( (data) => {
this.count = data.length
});
};
}
}
.then
方法返回一个promise。需要使用提供给.then
方法的函数提取promise的值。