Я пишу директиву Angular 1.5, и я сталкиваюсь с неприятной проблемой, пытаясь манипулировать связанными данными до ее существования.
Здесь мой код:
app.component('formSelector', {
bindings: {
forms: '='
},
controller: function(FormSvc) {
var ctrl = this
this.favorites = []
FormSvc.GetFavorites()
.then(function(results) {
ctrl.favorites = results
for (var i = 0; i < ctrl.favorites.length; i++) {
for (var j = 0; j < ctrl.forms.length; j++) {
if (ctrl.favorites[i].id == ctrl.newForms[j].id) ctrl.forms[j].favorite = true
}
}
})
}
...
Как вы можете видеть, я делаю вызов AJAX для получения избранных, а затем проверяю его на связанный список форм.
Проблема заключается в том, что обещание выполняется даже до того, как связывание заполняется... так что к моменту запуска цикла ctrl.forms все еще undefined!
Без использования $scope. $watch (который является частью привлекательности 1.5 компонентов), как я могу ждать завершения привязки?