成功ajax后,Angular Service失去价值

时间:2015-09-25 11:31:44

标签: javascript jquery ajax angularjs onsen-ui

这段代码有什么问题? 如果在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);

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

1 个答案:

答案 0 :(得分:1)

而不是使用$ .ajax,您可以使用$ http服务内置的角度,这是官方文档的 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;
相关问题