javascript - Angular Service 在成功 ajax 后失去值(value)

标签 javascript jquery ajax angularjs onsen-ui

这段代码有什么问题? 如果在 ajax 成功函数之外使用,var“acc”就会失去值(value)。 “AppendUser”方法只是推送对象 user。 它在整个项目中运行良好,但在这种情况下它正在失去值(value)。为什么?

  $.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);

编辑: 问题似乎是在附加值的同一 Controller 内使用该服务。如果我在此 Controller 中附加值并在另一个 Controller 中获取值,则它可以工作。但如果我尝试获取附加在同一 Controller 中的值,它会返回空对象。为什么?

最佳答案

您可以使用 $http 服务中内置的 Angular 来代替 $.ajax,这里是 link 官方文档

// 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;

关于javascript - Angular Service 在成功 ajax 后失去值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32781229/

相关文章:

使用动态 json 输出的 Jquery 幻灯片放映不起作用

javascript - 在 .data 或 attr 中保存对象状态 - 性能与 CSS?

javascript - 使用 model.save() 发布表单

javascript - ajax成功后撤消preventDefault

javascript - 如何从深层 li 结构创建 json 输出

javascript - 无法使用 jQuery 查询 JSON

javascript - jquery 选项卡中的 morris.js 图表

javascript - Angularjs ng-click 不更新 View

javascript - 单击 Box shadow Shadow - Javascript(不是 jquery)

javascript - jQuery Ajax 在 Safari 中不工作