【问题标题】:AngularJS $resource url causes "question mark" ? to appear with no paramsAngularJS $resource url 导致“问号”?不带参数出现
【发布时间】:2013-11-03 17:29:49
【问题描述】:

我有一个 $resource,它为 :all 方法定义了一个自定义 url。

angular.module('MyApp').
  factory('Object', ['$resource', ($resource) ->
    $resource(
      '/api/groups/:group_id/objects/:id.json',
      {
        id: '@id',
        group_id: '@group_id'
      },
      all: {
        method: 'GET',
        url: '/api/objects/all.json'
      }
    )
  ])

当我的页面加载时,请求会发送到“/api/objects/all.json?”。它加载正确,但存在 ?让我很困惑。我没有给它传递任何参数,那么为什么 angular 会添加 ?对请求?

我能以某种方式摆脱它吗?

【问题讨论】:

    标签: angularjs angularjs-resource


    【解决方案1】:

    自 Angular v.1.2.14 以来,此问题已得到修复。更新它并有一个清晰的网址,没有不必要的问题

    【讨论】:

    • 确认在 1.2.14 中修复。这是正确的答案。
    【解决方案2】:

    您应该将您的顶级参数移动到将需要 id 的方法中,并将其放入 get 方法的定义中。由于您有 { id: @id } ,资源服务认为您将在调用中添加一个 id 和组 id。

    【讨论】:

    • 谢谢!这行得通,但这让我分别声明了每个默认操作(获取、保存、查询等)。我还尝试将 params:{} 放入我的 all: 操作中,但这并没有解决问题。我可以以某种方式覆盖默认参数吗?
    猜你喜欢
    • 1970-01-01
    • 2017-10-19
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2011-01-20
    • 2014-04-22
    相关资源
    最近更新 更多