当前位置: 首页 > 面试题库 >

AngularJS使用$ resource服务。GET请求无法解决承诺

阴雪风
2023-03-14
问题内容

假设这样的服务:

   services.factory('User', function($resource){
        return $resource('/rest/usersettings/:username', {}, {
            get:    {method: 'GET'},
            update: {method: 'POST'}
        });
    });

所以应该这样使用:

        scope.user = User.get( {username: 'bob'}  );    // GET

        console.log( JSON.stringify(scope.user) )       // {"$promise":{},"$resolved":false}

因此,当我发送GET请求时,一切正常,构建了ur + params:

http://localhost:9000/rest/usersettings/bob

问题,为什么我有: {"$promise":{},"$resolved":false}

如果我的GET请求导致从服务器返回的json-
response:{"username":"bob","email":"bob@bobs.com"}那么我希望我scope.user的数据被填满。

我是否应该以某种方式等待诺言已经准备就绪/已解决?


问题答案:

User.get( {username: 'bob'} )不会立即返回您的实际数据。当ajax返回时,它返回的内容将保存您的数据。在那个($promise)上,您可以注册一个附加的回调来记录您的数据。

您可以将代码更改为:

   scope.user = User.get( {username: 'bob'}  );    // GET
   scope.user.$promise.then(function(data) {
       console.log(data);
   });


 类似资料:
  • Python 的标准库 urllib 提供了大部分 HTTP 功能,但使用起来较繁琐。通常,我们会使用另外一个优秀的第三方库:Requests,它的标语是:Requests: HTTP for Humans。 Requests 提供了很多功能特性,几乎涵盖了当今 Web 服务的需求,比如: 浏览器式的 SSL 验证 身份认证 Keep-Alive & 连接池 带持久 Cookie 的会话 流下载

  • 问题内容: 有没有办法判断一个请求是否为Angular(1.1.5)$ resource请求。我几乎在寻找这种请求的“ Request.IsAjaxRequest()”方法。 我正在寻找这,就像重写的AuthorizeAttribute的HandleUnauthorizedRequest中一样,如果需要Ajax或angular请求,则需要将上下文结果设置为某些json;否则,需要将上下文结果设置为

  • 问题内容: 我需要使用该服务发送GET请求。参数之一是ID数组。网址看起来像这样一个 **mysite.com/items?id[]=1 &id[]=2&id[]=3&id[]=4** 我尝试过这种方法 但网址是 **mysite.com/items?id=%5B%221%22%2C%222%22%2C%223%22%2C%224%22%5D** 那是因为Angular正在将我的值转换为JSON字

  • 我需要发送一个请求,如下所示 我使用以下代码,但它似乎没有发送一个正确的请求,因为响应对象是空的。我也想知道如何显示完整的url restTemboard发送?我知道WireShark可以使用,但有什么方法可以使用restTem板检索它吗? 密码

  • 本文向大家介绍深入理解Angularjs中的$resource服务,包括了深入理解Angularjs中的$resource服务的使用技巧和注意事项,需要的朋友参考一下 一、$resource服务介绍 $http服务提供的实现极为简单和低级,可以用来发送XHR请求,同时它还为你提供了很大的可控性和灵活性。但是,在大多数情况下,我们需要处理对象,以及封装了特定属性和方法的对象模型,例如一个person

  • 问题内容: 我的服务是: 我通过以下方式在我的文件中调用它: 但是,它抱怨这不是一个功能。我不退还已解决的承诺吗? 问题答案: 从您的服务方式: 在您的控制器中: