検索

ホームページ  >  に質問  >  本文

angular.js - angular-ui-router的预加载与控制器注入

ui-router的预加载 resolve获得数据后,如何向控制器注入?

备注:

路由代码 ↓

$stateProvider.state('dashboard', {
    url: '/dashboard',
    templateUrl: 'views/dashboard/index.html',
    resolve: {
        getList: function ($stateParams, $NetRequest){
            var options = {type: 'charts'};
            
            $NetRequest.post(options).then(function($ref){
                return $ref.data;
            });
        }
    },
    controllerUrl: 'views/dashboard/index',
    controller: 'DashboardController',
    controllerAs: 'vm'
});

服务代码 ↓

service.post = function($options){
    var deferred = $q.defer();
    
    // 省略请求函数...
    
    return deferred.promise;
};

这时候如果直接在控制器中注入 getList,结果为undefined

我看官方文档介绍,有个$inject的参数,可惜没有实例,我不清楚该如何使用。

ringa_leeringa_lee2744日前525

全員に返信(2)返信します

  • 仅有的幸福

    仅有的幸福2017-05-15 17:13:59

    問題は解決されました、方法は実際には非常に簡単です - -

    リーリー

    返事
    0
  • 漂亮男人

    漂亮男人2017-05-15 17:13:59

    「//ここでデータを取得します」。 。 。 。約束は返しましたか?

    返事
    0
  • キャンセル返事