首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用Angular ngResource联系非标准API

如何使用Angular ngResource联系非标准API
EN

Stack Overflow用户
提问于 2016-10-27 16:41:52
回答 2查看 29关注 0票数 0

如果我试图搜索特定的非id字段,我使用的API需要一个非标准的where子句。我需要的端点是:

http://127.0.0.1:4001/api/testusers/findOne?userName=Anton

因此,这将在testusers表中找到列(userName) = 'Anton‘的第一条记录。

我的标准服务是:

代码语言:javascript
复制
angular.
  module('shared.testUser').
  factory('TestUser', ['$resource',
    function($resource) {
      return $resource('http://127.0.0.1:4001/api/testusers/:id', {id:'@id'},//parameters
            {
                update: {
                      method: 'PUT' // To send the HTTP Put request when calling this custom update method.
                }
                 
            });
    }
  ]);

我的调用函数是:

代码语言:javascript
复制
    self.checkUsersEntryDirection = function(){ //NOT WORKING
      self.testuser = TestUser.get({ username: 'anton' }, function() {
        console.log(angular.toJson(self.testuser));
      }); // get() returns a single entry
    }

显然,这不起作用,我不能使用标准的get方法。有人能想到如何实现这一点吗?

EN

回答 2

Stack Overflow用户

发布于 2016-10-27 16:52:51

您可以创建辅助工厂TestUserByName,并进行以下更改:

代码语言:javascript
复制
angular.
  module('shared.testUser').
  factory('TestUserByName', ['$resource',
    function($resource) {
      return $resource('http://127.0.0.1:4001/api/testusers/findOne?userName:username', null,
            {
                update: {
                      method: 'PUT' // To send the HTTP Put request when calling this custom update method.
                }

            });
    }
  ]);
票数 0
EN

Stack Overflow用户

发布于 2016-10-31 14:33:32

使用两个参数调用get操作方法:

代码语言:javascript
复制
var params = {id: "findOne", username: "anton"};

self.checkUsersEntryDirection = function(){
  self.testuser = TestUser.get(params, function() {
    console.log(angular.toJson(self.testuser));
  }); // get() returns a single entry
}

id参数将覆盖默认值,username参数将作为查询字符串添加。

在DOCS中:

首先将参数对象中的每个键值绑定到url模板(如果存在),然后将任何多余的键附加到url搜索查询的?之后。

给定一个模板/path/:verb和参数{verb:'greet', salutation:'Hello'},结果是URL /path/greet?salutation=Hello

--AngularJS ngResource $resource Service API Reference

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40280008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档