2014-02-06 7 views
2

Я использую Застройщик ресурсов AngularJS $ для доступа к службам REST клиента. Некоторые параметры определяются с дополнительными параметрами пути, а не с параметрами запроса.Углеродный ресурс дополнительных параметров пути

Случай 1:

Я называю myUrl/APPLICATION-: ApplicationID/исчерпаемой: limit.json

с:

{ 
    applicationID:"1234", 
    limit: 10 
} 

Я получаю правильный URL в myUrl/application-1234/limit-10.json

Случай 2:

Я называю myUrl/APPLICATION-: ApplicationID/исчерпаемой: limit.json

с:

{ 
    applicationID:"1234" 
} 

Я хочу, чтобы полученный URL, чтобы игнорировать дополнительный limit параметр и сворачивание до myUrl/application-1234.json

Однако, что я ge т является myUrl/приложение-1234/предел-.json

* EDIT У меня есть несколько категорий API, например Foo1, Foo2, и каждый из них имеет несколько конечных точек, например endPoint1, endPoint2 и использование метода в @ посте Дейтерс, я не может видеть способ чистого перечислить все мои ресурсы без использования имен временных категорий, а затем привязать их все вместе в конце.

MyServices.factory ('MyAPI', ['$resource', 

function ($resource) { 

    return { 

    Foo1: $resource ('', 
    {      
     application: "@applicationID", 
     limit: "@limit" 
    }, 
    {   
     endPoint1: { 
      ... 
     }, 
     endPoint2: { 
      url: "myURL/application-:applicationID/limit-:limit.json", 
      method:'GET', 
      isArray:true 
     }, 
    }),  

    Foo2: $resource ('', 
    {      
     application: "@applicationID" 
    }, 
    {   
     endPoint1: { 
      ... 
     }, 
     endPoint2: { 
      ... 
     } 
    }),    
}    
}]);  

Пример вызов:

MyAPI.Foo1.endPoint1 ({ application: "1", limit: 5 }); 
MyAPI.Foo2.endPoint2 ({ application: "1" }); 
+0

Возможный дубликат [факультативный-url-параметры-в-angularjs-ресурса] (http://stackoverflow.com/questions/10382337/optional-url-parameters-in -angularjs-resource) – Dieterg

+0

Я отредактировал свое оригинальное сообщение, чтобы показать свою текущую структуру, поскольку я не уверен, как полностью интегрировать метод в ваш пост. – user3279701

ответ

1

Вы могли бы использовать, связанный ответ, данный в комментариях @Dieter, а также создавать отдельные $ ресурсов, но я хотел бы предложить просто сделать каждый кусок URL последователен. Сделайте это либо:.

1) Удаление статического компонента каждой переменной части (например, myUrl/1234/10)

2) Passing фактическое значение к URL-адресу, который вы хотите использовать, и держать всю переменную часть (например, myUrl/:applicationID/:limit, и передать в application-1234 & limit-10)

+0

Я отредактировал свое оригинальное сообщение, чтобы показать текущую структуру. Если я правильно вас понимаю, вы предлагаете мне передать пару ключ и значение в параметре строки, а не только значение? – user3279701

+0

Да. Но я также чувствую, что 'application-' и 'limit-' довольно избыточны. –

+0

Спасибо.Я согласен с вами в структуре URL-адресов, но есть много конечных точек, и он уже развернут на большом многоплатформенном сайте, поэтому, к сожалению, очень маловероятно, что они изменят его. – user3279701

Смежные вопросы