0

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

4

1 回答 1

0

代码可能应该是:

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

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

于 2018-03-14T18:37:23.663 回答