У меня возникли проблемы с выяснением того, почему мое обещание не выполняется так, как я ожидал. Я использую Ionic/UI-маршрутизацию.
мой сервис:
return {
all: function () {
$localForage.getItem('foo').then(function (bar) {
return bar;
});
}
};
Когда я записываю данные в консоль, я вижу объекты, которые localForage возвращает из indexeddb.
мои приложения.js:
.state('tab.foo', {
url: '/foo',
views: {
'tab-foo': {
templateUrl: 'templates/tab-foo.html',
controller: 'fooCtrl as foo'
}
},
resolve: {
getData: function (Service) {
return Service.all();
}
}
})
В моем контроллере foo:
this.foo = getData;
Когда я это делаю, foo в контроллере не определено, есть идеи, почему? При входе в консоль я вижу, что служба вызывается с помощью apps.js, я вижу, что она разрешена, потому что я вижу данные в консоли. Используя ui-router, я ожидаю, что он не загрузит представление/контроллер, пока все не будет разрешено.
В качестве вдохновения я использовал следующее, только без сервиса $q. http://odetocode.com/blogs/scott/archive/2014/05/20/using-resolve-in-angularjs-routes.aspx