Angular服务成功后失去价值ajax
Angular Service lose value after success ajax
这段代码有什么问题?
如果在 ajax 成功函数之外使用,var "acc" 将失去价值。
"AppendUser" 方法只是推入对象用户。
它在整个项目中运行良好,但在这种情况下它正在失去价值。为什么?
$.ajax({
url: url,
data: { user_id: user_id },
dataType: "json",
success:function(user) {
UserService.resetUser();
UserService.appendUser(
user[0].user_id,
user[0].firstname
);
}
});
acc = UserService.getUser();
console.log(acc);
编辑:
问题似乎是在附加值的同一控制器内使用服务。如果我在这个控制器中附加值并在另一个控制器中获取值,它就可以工作。但是我如果尝试获取附加在同一个控制器中的值,它 returns 空对象。为什么?
不用$.ajax你可以用angular内置$http服务这里是官方文档link 13=]
// Simple POST request example (passing data) :
$http.post('/someUrl', {msg:'hello word!'}).
then(function(response) {
// this callback will be called asynchronously
// when the response is available
}, function(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
对于您的应用程序,您可以在服务上使用类似这样的东西
var deffered = $q.defer();
$http.get(url,{ params: {user_id: user_id } })
.success(deffered.resolve).error(deffered.reject);
return deffered.promise;
这段代码有什么问题? 如果在 ajax 成功函数之外使用,var "acc" 将失去价值。 "AppendUser" 方法只是推入对象用户。 它在整个项目中运行良好,但在这种情况下它正在失去价值。为什么?
$.ajax({
url: url,
data: { user_id: user_id },
dataType: "json",
success:function(user) {
UserService.resetUser();
UserService.appendUser(
user[0].user_id,
user[0].firstname
);
}
});
acc = UserService.getUser();
console.log(acc);
编辑: 问题似乎是在附加值的同一控制器内使用服务。如果我在这个控制器中附加值并在另一个控制器中获取值,它就可以工作。但是我如果尝试获取附加在同一个控制器中的值,它 returns 空对象。为什么?
不用$.ajax你可以用angular内置$http服务这里是官方文档link 13=]
// Simple POST request example (passing data) :
$http.post('/someUrl', {msg:'hello word!'}).
then(function(response) {
// this callback will be called asynchronously
// when the response is available
}, function(response) {
// called asynchronously if an error occurs
// or server returns response with an error status.
});
对于您的应用程序,您可以在服务上使用类似这样的东西
var deffered = $q.defer();
$http.get(url,{ params: {user_id: user_id } })
.success(deffered.resolve).error(deffered.reject);
return deffered.promise;