使用ui-router解析资源

时间:2015-09-17 16:07:16

标签: angularjs angular-ui-router

我遇到这样的问题:我有抽象的状态:

    $stateProvider.state('bookings.clients', {
        url:"/clients",
        abstract:true,
        views:{
            "@":{
                templateUrl:"/Static/CrmPages/CrmMainPage.html",
                controller:"CrmMainPageController",

            }
        },
        resolve: {
            clientsData:function(clientsDataService) {
                return clientsDataService.loadData('ihor.korotenko@n-cube.co.uk');
            },
            clientsGroupsData: function (userGroupsService) {
                //return "some";
                return userGroupsService.api.query(function (data) {
                    userGroupsService.data = data;
                }).$promise;
            }

        }


});

如您所见,有两个解析对象。 然后,我将这些对象注入到子状态的控制器中:

angular.module("crmModule")
.controller("mainPageController", ['clientsGroupsData', 'clientsData', "$scope", "$rootScope", "$translate", 'clients', 'cultureProvider', '$state', function (clientsGroupsData, clientsData, $scope, $rootScope, $translate, clients, cultureProvider, $state)

我的资源提供者:

angular.module("crmModule")
.service("userGroupsService", ['$resource', function ($resource) {
var self = this;
self.data = [];
return {
    api: $resource("/api/groupsapi/getallgroups"),
    data: self.data
}

}])  儿童状态:

    $stateProvider.state('bookings.clients.overview', {
    url:"/overview",
    views:{
        "crm.main":{
            templateUrl: "/Static/CrmPages/main-page.html",
            controller:"mainPageController"
        }
    },

});

问题在于:当控制器实例化时,我看到注入的对象不是空的并且已经解决(没关系),但之后我得到了异常

Error: [$injector:unpr] Unknown provider: clientsGroupsDataProvider <- clientsGroupsData <- mainPageController

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

所以我找到了这个错误的原因,它发生是因为我通过ng-controller指令在html中附加控制器,当然,ui-router不能注入依赖,因为它不会实现控制器。