параметры angularjs $http с косой чертой

Я использую angularjs с тонким php, и у меня есть действие GET в тонком, которое

action/param1/param2

Затем в моем angularJS

$http({
 url: 'action',
method: 'GET',
params:{param1: param1, param2: param2}
}).success();

Он возвращает ошибку в консоли с использованием ? и &, но мне нужно получить косую черту между параметрами

http://xxxxxx/action?param=aaa&param2=bbb

Что я пробовал, я меняю параметры $http ниже, и это работает

 url: 'action/' + param1 + '/' + param2

Хорошо, мой вопрос: есть ли лучшее решение по сравнению с моим? потому что я чувствую себя глупым.


person vzhen    schedule 15.04.2013    source источник
comment
Я не думаю, что есть, потому что ваши params на самом деле не являются параметрами, они являются частью вашего ресурса, поэтому вам нужно поместить их в url   -  person Nix    schedule 16.04.2013
comment
Я согласен с Никсом. Рассматривали ли вы возможность обернуть $http в службу, которой можно было бы передать URL и параметры, и отформатировать запрос перед отправкой?   -  person Alex Osborn    schedule 16.04.2013
comment
Ты делаешь это правильно.   -  person holographic-principle    schedule 16.04.2013
comment
@AlexOsborn Да, я перенесу $http в общий сервис.   -  person vzhen    schedule 16.04.2013


Ответы (1)


Вместо этого используйте $resource:

var myResource = $resource('action/:foo/:bar', {},
                           { get: { method: 'GET' } }
                          );
myResource.get({foo:1, bar:2});

Вызовет вызов:

http://yourserver.com/action/1/2

person Foo L    schedule 26.04.2013
comment
Есть идеи, как это сделать с помощью $http? - person notdang; 08.10.2013
comment
Создайте URL-адрес http вручную "http://yourserver.com/action/" + param1 + '/' + param2 - person Foo L; 08.10.2013