Угловой компонент без URL
Я довольно плохо знаком с 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
};
По сути, этот компонент будет жить на главной странице моего приложения в навигации. Моя проблема в том, что когда я вызываю API-сервис, который есть в oninit, мне кажется, что данные не возвращаются вовремя для загрузки страницы. Любой совет будет фантастическим.
1 ответ
Решение
Код, вероятно, должен быть:
class MyInboxController {
constructor(api) {
this.api = api;
this.$onInit = () => {
api.getAllMessages().then( (data) => {
this.count = data.length
});
};
}
}
.then
метод возвращает обещание. Значение из обещания необходимо извлечь с помощью функции, предоставленной .then
метод.