编程语言
首页 > 编程语言> > javascript-使用ionic / ui-routing解决诺言

javascript-使用ionic / ui-routing解决诺言

作者:互联网

我在弄清楚为什么我的诺言没有解决我期望的方式时遇到一些问题.我正在使用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;
})

模板调用将包含控制器(foo)及其属性myData

resolved stuff:
<pre>{{foo.myData | json}}</pre>

检查它here

标签:angularjs,angular-ui-router,ionic-framework,promise,javascript
来源: https://codeday.me/bug/20191121/2050086.html