我在弄清楚为什么我的诺言没有解决我期望的方式时遇到一些问题.我正在使用Ionic / ui路由.
我的服务:
return {
all: function () {
$localForage.getItem('foo').then(function (bar) {
return bar;
});
}
};
当我将数据记录到控制台时,我看到localForage从indexeddb返回的对象.
我的apps.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是未定义的,有什么主意吗?当loggig进入控制台时,我可以看到该服务是由apps.js调用的,我可以看到该服务已解决,因为我在控制台中看到了数据.我希望使用ui-router在解决所有问题之前不会加载视图/控制器.
我将以下内容用作灵感,只是没有$q服务.
http://odetocode.com/blogs/scott/archive/2014/05/20/using-resolve-in-angularjs-routes.aspx
解决方法:
有一个working example.因为控制器将以foo的形式提供,所以我们应该这样做:
控制器分配到一些属性myData中
.controller('fooCtrl', function($scope, getData) {
this.myData = getData;
})
resolved stuff:
<pre>{{foo.myData | json}}</pre>
检查它here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。