angular-ui:如何从"解决"使用$ stateProvider.state时的选项

时间:2016-01-12 08:24:40

标签: angularjs angular-ui-router angular-promise

我见过的文档和内容展示了如何使用"解决"选项,但你如何获得数据?

我使用meanjs.org v0.3.x

我的路线:

//Setting up route
angular.module('mymodule').config(['$stateProvider',
    function($stateProvider) {
        //start routing
        $stateProvider.

        state('some-path', {
            url: '/some-url',
            templateUrl: 'modules/mymodule/views/my-controller.client.view.html',
            resolve: {
                DataService: 'DataService',
                promiseToResolve: function(DataService){
                    return DataService.get({});
                }
            }
        });
    }
]);

现在我如何准确地访问" promiseToResolve"我控制器中的数据? Docs似乎没有提到这一点。

另外,如果上面的代码在缩小时会破坏,请告诉我。

1 个答案:

答案 0 :(得分:0)

angular.module('mymodule').config(['$stateProvider',
    function($stateProvider) {
        //start routing
        $stateProvider.

        state('some-path', {
            url: '/some-url',
            templateUrl: 'modules/mymodule/views/my-controller.client.view.html',
            controller: mySpecialController,
            resolve: {
                promiseToResolve: ['DataService', function(DataService) {
                    return DataService.get({});
                }]
            }
        });
    }
]);

您不需要特定的DataService行,因此它已被删除,现在您的控制器(您已在上面的代码中指定)可以直接访问已解析的数据:

angular.module('mymodule').controller('mySpecialController', ['$scope', 'promiseToResolve',
    function ($scope, promiseToResolve) {
        $scope.dataResults = promiseToResolve.data;
    }
]);

至于缩小,我们在这里使用ngInject,这很棒。