无法从angular服务向控制器返回列表数据
Unable to return list data from angular service to controller
我试图从调用REST端点的angular服务返回一些数据,但是我似乎无法获得数据流,因为它是异步的。
我的服务方法。
appService.getApplicationSupportFiles = function () {
$http.post("/SEFlex/SEFlexAdmin/GetApplicationSupportFiles")
.then(function (response, status, headers, config) {
if (response.data) {
var list = JSON.parse(response.data.data);
return list;
}
});
}
我的控制器
function ShowApplicationFilesController($scope, $http, $modalInstance, $log, SEApplicationService, $rootScope, AlertsService) {
$rootScope.closeAlert = AlertsService.closeAlert;
$scope.supportFiles = [];
$scope.originalSupportFiles = [];
$scope.isBusy = false;
$scope.newFile = {
localFile: "",
cloudFile: "",
}
// Load the initial files
$scope.supportFiles = SEApplicationService.getApplicationSupportFiles();
$scope.originalSupportFiles = $scope.supportFiles;
$scope.addApplicationFile = function() {
var file = { LocalPath: $scope.newFile.localFile, ShareName: "b", FolderName: "c", FileName: "d" };
$scope.supportFiles.push(file);
$scope.newFile = { localFile: "", cloudFile: "" };
}
}
问题是填充supportFiles的调用是异步的,所以当originalSupportFiles试图复制值时,supportFiles是未定义的。但也当我然后点击addApplicationFile()它不能推到值$范围。因为它认为它是未定义的,所以看起来值根本没有被加载,即使服务被调用并返回数据。
我做错了什么?
你需要返回一个承诺,然后从那里开始——这里有一种方法:
return $http.post("/SEFlex/SEFlexAdmin/GetApplicationSupportFiles").then(function (response, status, headers, config) {
return response.data;
});
然后在控制器中:
SEApplicationService.getApplicationSupportFiles().then(function(list) {
$scope.supportFiles = list;
});
相关文章:
- 从控制器返回后Ajax启动事件激发
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 将从控制器返回的selectbox值动态呈现为json
- 如何从服务器端控制器返回或调用已签名的小程序的方法
- 如何从控制器返回对象列表并使用JQuery(SpringMVC,ajax)显示它们
- 无法使用.ajax调用显示MVC控制器返回的属性值
- 从ajax到控制器返回的变量为null
- 服务不会以角度向控制器返回数据
- 通过 ID 获取元素,为 Sencha 控制器返回 null
- 是否可以使控制器返回模式窗口的数据?MVC5 ASP.NET
- Laravel 5.2 - 在 ajax 请求后从控制器返回视图
- CodeIgniter - 如何从控制器返回 Json 响应
- C# mvc - 控制器返回部分视图或 json 数据
- 从控制器返回 javascript 以查看
- jQuery解析从控制器返回的JSON结果
- 控制器返回纯json数据,而不是停留在页面上
- 从 mvc 控制器返回两个 dienstional 数组作为 json
- 从控制器返回Json数据以查看ASP.NET MVC
- 使用工厂和控制器返回数据
- $http没有从Spring MVC REST控制器返回值