У меня проблемы с "каким-то" ожиданием или моей функцией defineDamage возвращает результат до того, как представление будет нарисовано, оставляя меня с пустыми списками, однако функция проходит и "в конечном итоге" получает данные ... Не нужно говорить, что уже слишком поздно..
Так что мне интересно, есть ли способ заставить просмотр wait (throttle) , обновить позже или какие-либо другие опции, которые у меня могут быть.
angularApplication.component("damage", {
bindings: {
results: "=",
},
templateUrl: "views/damage-results.html",
controller: function(Champion) {
let $ctrl = this;
const determineDamage = function (options) {
//return "blabla"; --this would print "blabla" properly
let champion = new Champion({options:options});
return champion.fetch().then(() => {
champion.findName().then((name) => {
console.log(name);
//name is logged but well, "too late"
return name;
});
};
$ctrl.$onInit = function () {
$ctrl.results = $ctrl.results || [];
$ctrl.determineDamage = determineDamage;
};
HTML:
<li ng-repeat="champs in $ctrl.results">
<div class="champion__list">{{$ctrl.determineDamage(champ.id)}}</div>
</li>
Я "искал всю сеть", и я не могу понять, как получить мой результат ... также обратите внимание, что если бы я поставил return "blabla"просмотр получит эту информацию.Так что, к моему плохому пониманию, все в порядке, за исключением того, что мой компонент не ждет, пока функция defineDamage пройдет до конца.Любые идеи или советы?
Редактировать: примечание: это не пустое, что я получаю, если быть точным, я получаю [объект Обещание], возвращенный как из моей возвращаемой строки champion.fetch.