$ routeProvider resolve没有从promise获取对象

时间:2017-04-06 02:41:35

标签: angularjs angular-promise route-provider

我无法从承诺中获取一系列对象。我有两个问题。首先,当<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="wrapper"> <div class="slider-container"> <ul class="slider"> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>1</li> <li>2</li> <li>3</li> <li>4</li> </ul> <ul class="btns"> <li class="prev">prev</li> <li class="next">next</li> </ul> </div> </div>中调用GetAccounts()时,它返回2个对象。在解决方案中,当我检查变量结果时,它没有2个对象。其次,当控制器实例化时,它会给我这个错误:帐户未定义。谁能告诉我我做错了什么?提前谢谢。

AccountService.js

AccountService

AdminController.js

app.factory('AccountService', ['$http', function ($http) {
    return {
        GetAccounts: function () {
            return $http.get('api/Account/GetAccounts')
            .then(function success(response) {
                return response.data;
            }, function error(response) {
                return console.log("Oops!");
            });
        }
    };
}]);

route.js

app.component('admin', {
    templateUrl: 'Content/app/components/admin/Admin.html',
    bindings: {
        accounts: '<'
    },
    controller: function () {
        this.accounts = accounts;
    }
})

1 个答案:

答案 0 :(得分:1)

进行以下更改以使其正常工作。

AdminController.js

app.component('admin', {
    templateUrl: 'Content/app/components/admin/Admin.html',
    bindings: {
        accounts: '<'
    }    })

<强> route.js

app.config(['$routeProvider', function ($routeProvider) {
    $routeProvider.when('/admin', {
        template: 'template.html',
        resolve: {
            GetAccounts: ['AccountService', function (AccountService) {
                var result = AccountService.GetAccounts();

                return result;
            }]
        },
        controller:['$scope','GetAccounts',function($scope, GetAccounts){
           $scope.accounts = GetAccounts;
        }]
    })
}]);

template.html

<div>
<admin accounts="accounts"></admin>
</div>