从单独的控制器 angularjs 中成功检索 post 数据
Retrieving data out of post success from separate controller angularjs
我正在编写一个简单的服务,用于上传文件并将其 post 发送到 Spring 控制器。控制器操纵这些数据和 returns 几个对象作为 JSON。
我正在使用以下 Angular 服务:
myApp.service('fileUpload', [ '$http', function($http) {
this.uploadFileToUrl = function(file, uploadUrl) {
var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd, {
transformRequest : angular.identity,
headers : {
'Content-Type' : undefined
}
})
.success(function(data) {
console.log("upload successful")
//console.log(data)
namesandaddresses = data;
})
.error(function() {
console.log("upload error")
});
}
} ]);
我在代码中有一个单独的控制器,我想用它 post 将此数据(名称和地址)显示到视图中,并使用 ng-repeat 显示信息。我现在的挣扎是将数据拉到这个成功功能之外,更不用说服务本身了。我尝试在服务外部创建一个全局变量名称和地址,以便我可以从另一个控制器访问它,但它显示为未定义。
根据我的研究,我发现执行此操作的适当方法是使用回调函数,但我尝试将其写入服务会破坏基本功能。在重新设计此服务或重新考虑我的方法之前,我想 post 这个并看看 Whosebug 社区是否可以帮助我调整此服务,以便我可以 post 这个 JSON 到视图成功后。
有人愿意帮我吗?
非常简单。
控制器:
fileUpload.uploadFileToUrl (file,uploadUrl, {
successCallBack: yourSuccessHandler,
failureCallBack: yourFailureHandler
});
function yourSuccessHandler(data) {
$scope.data= data;
}
function yourFailureHandler() {
console.log("Failed Messge printing from Controller");
}
服务
myApp.service('fileUpload', [ '$http', function($http) {
this.uploadFileToUrl = function(file, uploadUrl, options) {
var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd, {
transformRequest : angular.identity,
headers : {
'Content-Type' : undefined
}
})
.success(function(data) {
console.log("upload successful");
if(options && options.successCallBack) {
return options.successCallBack(data);
}
})
.error(function() {
console.log("upload error");
if(options && options.failureCallBack) {
return options.failureCallBack();
}
});
}
} ]);
我正在编写一个简单的服务,用于上传文件并将其 post 发送到 Spring 控制器。控制器操纵这些数据和 returns 几个对象作为 JSON。 我正在使用以下 Angular 服务:
myApp.service('fileUpload', [ '$http', function($http) {
this.uploadFileToUrl = function(file, uploadUrl) {
var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd, {
transformRequest : angular.identity,
headers : {
'Content-Type' : undefined
}
})
.success(function(data) {
console.log("upload successful")
//console.log(data)
namesandaddresses = data;
})
.error(function() {
console.log("upload error")
});
}
} ]);
我在代码中有一个单独的控制器,我想用它 post 将此数据(名称和地址)显示到视图中,并使用 ng-repeat 显示信息。我现在的挣扎是将数据拉到这个成功功能之外,更不用说服务本身了。我尝试在服务外部创建一个全局变量名称和地址,以便我可以从另一个控制器访问它,但它显示为未定义。
根据我的研究,我发现执行此操作的适当方法是使用回调函数,但我尝试将其写入服务会破坏基本功能。在重新设计此服务或重新考虑我的方法之前,我想 post 这个并看看 Whosebug 社区是否可以帮助我调整此服务,以便我可以 post 这个 JSON 到视图成功后。
有人愿意帮我吗?
非常简单。
控制器:
fileUpload.uploadFileToUrl (file,uploadUrl, {
successCallBack: yourSuccessHandler,
failureCallBack: yourFailureHandler
});
function yourSuccessHandler(data) {
$scope.data= data;
}
function yourFailureHandler() {
console.log("Failed Messge printing from Controller");
}
服务
myApp.service('fileUpload', [ '$http', function($http) {
this.uploadFileToUrl = function(file, uploadUrl, options) {
var fd = new FormData();
fd.append('file', file);
$http.post(uploadUrl, fd, {
transformRequest : angular.identity,
headers : {
'Content-Type' : undefined
}
})
.success(function(data) {
console.log("upload successful");
if(options && options.successCallBack) {
return options.successCallBack(data);
}
})
.error(function() {
console.log("upload error");
if(options && options.failureCallBack) {
return options.failureCallBack();
}
});
}
} ]);