【问题标题】:Angular resource with integer parameter builds wrong url具有整数参数的角度资源构建错误的 url
【发布时间】:2015-11-02 23:01:43
【问题描述】:

我正在尝试使用以下代码与 RESTFul 服务进行通信:

$scope.makeRequest = function(){
    params = {};
    params['3'] = 'X';
    params['length'] = 5;

    var resource = $resource('/foo', {});
    var result = resource.query(params, function(){
       console.log(result);
    });
}

此请求有效,并调用预期的 url:http://localhost:3000/foo?3=X&length=5

但是,当整数字段是“长度”字段的值减一时:

$scope.makeRequest = function(){
    params = {};
    params['4'] = 'X';
    params['length'] = 5;

    var resource = $resource('/foo', {});
    var result = resource.query(params, function(){
       console.log(result);
    });
}

这个 sn-p 忽略了 'length' 字段,并请求:http://localhost:3000/foo?4=X

我的问题是:

  1. 这种行为从何而来?
  2. 有没有更好的方法来提出这个请求?考虑到我需要多个整数参数,我可以避免使用多个整数参数吗?

【问题讨论】:

    标签: angularjs http restful-url angular-resource query-parameters


    【解决方案1】:

    您是否尝试过像这样设置文字对象:

    params = {'4':'X', 'length': '5'}
    

    【讨论】:

    • 这具有相同的结果。正确创建了 params 对象,问题在于资源如何发出请求。而且我无论如何也不能使用它,因为我想动态地创建 params 对象。
    • 哦,我明白了,但只是想一想,用数字值而不是代表该数字的字符串构建 params 对象有什么意义?这对你有意义吗?
    • 其实这就是问题所在,如果'length'的值是字符串类型的,它就可以工作。谢谢,不过我仍然不知道为什么会这样。
    猜你喜欢
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 2014-11-14
    • 2020-10-09
    • 2017-12-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多