【发布时间】:2017-04-06 02:41:34
【问题描述】:
我在尝试从 Promise 中获取对象数组时遇到问题。我有两个问题。首先,当GetAccounts() 在AccountService 中被调用时,它返回2 个对象。在解析中,当我检查变量结果时,它没有 2 个对象。其次,当控制器被实例化时,它给了我这个错误:accounts is not defined。谁能告诉我我做错了什么?提前致谢。
AccountService.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!");
});
}
};
}]);
AdminController.js
app.component('admin', {
templateUrl: 'Content/app/components/admin/Admin.html',
bindings: {
accounts: '<'
},
controller: function () {
this.accounts = accounts;
}
})
route.js
app.config(['$routeProvider', function ($routeProvider) {
$routeProvider.when('/admin', {
template: '<admin accounts="$resolve.GetAccounts"></admin>',
resolve: {
GetAccounts: ['AccountService', function (AccountService) {
var result = AccountService.GetAccounts();
return result;
}]
}
})
}]);
【问题讨论】:
-
你真的创建了 API 吗?
-
请注意
GetAccounts函数将被拒绝的承诺转换为成功的承诺。见Angular execution order with $q – georgeawg -
是的,我已经创建了 API,这就是为什么我能够获得 2 个对象 @floor
-
@georgeawg 是的,这是我工作帐户中的另一篇帖子,但由于某种原因,我无法获取这些对象。与我的另一篇文章的唯一区别是我使用了 webpack 而我没有使用这个
标签: angularjs angular-promise route-provider