resolve 没有将数据从工厂传递到控制器

resolve is not passing data from factory to controller

我是 ui-router 中解析函数的新手,我没有得到工厂调用的答案,而如果我只是简单地传递一个字符串,我就会得到值。

我尝试 console.log 工厂,我得到了一个输出。

状态函数

  .state('trainer.classes',
     {   url: "/trainer/classes",
          controller:"trainerClassesCntrl",
         templateUrl: "views/trainer/trainer.classes.tpl.html",
         resolve : {courses : function(courseFactory){
                                          courseFactory.get().then(function(response){
                                            // console.log(response); //Getting output
                                          return response;
                                        });
                                        // return  "asdf"; //Getting output as test case.
                                      }
                                    },
         permissions:{allow : ['trainer']}

     })

控制器

myApp.controller('trainerClassesCntrl',['$scope','apiService','$rootScope','courses',function($scope,apiService,$rootScope,courses){
  console.log(courses); // undefined for coursesFactory return and asdf for simple return.

}]);

你没有兑现承诺。尝试这样的事情:

.state('trainer.classes', {
    url: "/trainer/classes",
    controller: "trainerClassesCntrl",
    templateUrl: "views/trainer/trainer.classes.tpl.html",
    resolve: {
        courses: function(courseFactory){
            return courseFactory.get();
        }
    },
    permissions: {
        allow: ['trainer']
    }
})

您可以在此处阅读有关将解析与 ui-router 结合使用的更多信息: https://github.com/angular-ui/ui-router/wiki#resolve