resolve不会将数据从工厂传递到控制器

时间:2015-02-24 16:26:55

标签: angularjs angular-ui-router resolve

我是新手来解决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.

}]);

1 个答案:

答案 0 :(得分:0)

你没有回复承诺。尝试这样的事情:

.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