我知道数据来自服务器(我有单元测试,并看到调试器中的数据在铬)但我不知道如何将角度服务的数据返回角度控制器。如何从角度js中的服务返回值?
服务:
修订
surchargeIndex.service('customerService', [
'$http', function ($http) {
this.getTest = function() {
return $http({
method: "GET",
url: "api/Customer/GetTest",
})
.success(function(data) {
return data;
});
};
}
]);
控制器:
surchargeIndex.controller('SurchargeIndexController', function ($scope, customerService, templateService) {
$scope.customers = customerService.getTest();
});
的数据具有从该服务器阵列,使得所述阵列被在服务填充。所以重申数据在那里;但是,在调试期间,我收到成功处理程序的内部错误404。
我错过了什么?
你说它返回一个“承诺”,这是什么意思? – Robert 2014-12-04 15:06:01
正如你可能知道JavaScript是异步工作的,所以当你通过'$ http'发出请求时,进程不会停止,直到它返回一个结果,但它会继续执行下一个命令。通过返回一个承诺,你给调用者一个钩子。当从服务器检索到一个响应时,Promise将被执行,客户端将通过promise的'then'函数被通知。您可能想要查看https://github.com/kriskowal/q这是广泛使用的承诺实现之一。 – cubbuk 2014-12-04 15:10:24
好的,数据有数组,但不返回给控制器。我得到了一个成功处理程序,但是当我调试它时,我在成功处理程序中返回了一个404数据返回数据。 – Robert 2014-12-04 15:19:37