角度组件没有URL

时间:2018-03-14 01:04:28

标签: angularjs angular-components angular-component-life-cycle

我对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服务时,它似乎永远不会及时获取数据以便加载页面。任何建议都会很棒。

1 个答案:

答案 0 :(得分:0)

代码可能应该是:

class MyInboxController {
    constructor(api) {
        this.api = api;
        this.$onInit = () => {
          api.getAllMessages().then( (data) => {
            this.count = data.length 
          });
        };
    }
}

.then方法返回一个promise。需要使用提供给.then方法的函数提取promise的值。