2013-07-31 2 views
0

Я пытаюсь сделать запросAngularjs RESTul ресурсов Запрос

....port/trimService/fragments/?fragment_name=:fragmentName 

Однако, если я пытаюсь сделать «? Fragment_name» параметр, он ломается. Поскольку у меня будет больше запросов, мои действия с изменением, поэтому я не могу оставить его в URL-адресе ресурса.

angular.module(foo).factory('FragmentService', ['$resource', 
function ($resource) 
{ 
    var FragmentService = $resource('.../fragments/:action:fragmentName', 
    {}, 
    { 
     'getFragments': 
     { 
      method: 'GET', 
      isArray: true, 
      params: 
      { 
       fragmentName: "@fragmentName", 
       action: "?fragment_name=" 
      } 
     } 

    }); 
    return FragmentService; 
} 
]); 

На данный момент я понятия не имею, что мой URL действительно выводит.

EDIT: Я изменил свой ресурс как/u/akonsu, упомянутый ниже. Я также добавил свой контроллер, поскольку он все еще работает неправильно.

angular.module(foo).factory('FragmentService', ['$resource', 
function ($resource) 
{ 
    var FragmentService = $resource('.../fragments/', 
    {}, 
    { 
     'getFragments': 
     { 
      method: 'GET', 
      isArray: true, 
      params: 
      { 
       fragmentName: "@fragmentName", 
      } 
     } 

    }); 
    return FragmentService; 
} 
]); 


angular.module(foo).controller('FragmentController', ['$scope', 'FragmentService', 
function ($scope, FragmentService) 
{ 
    $scope.fragmentQuery = { 
     fragmentName: 'a', 
    }; 


    $scope.fragmentQuery.execute = function() 
    { 
     if ($scope.fragmentQuery.fragmentName == '') 
     { 
      $scope.fragments = {}; 
     } 
     else 
     { 
      $scope.fragments = FragmentService.getFragments(
      { 
       fragmentName: $scope.fragmentQuery.fragmentName, 
      }); 
     } 
    }; 
    $scope.fragmentQuery.execute(); 

} 

]);

+0

Какое URL-адрес он отправляет сейчас? вы могли бы увидеть его на вкладке сети в браузере? – akonsu

+0

Да, я, наконец, смог увидеть звонок, я не смог, это привело меня к тому, что я смог внести правильные изменения в свой контроллер. Спасибо! – Larsbars

ответ

1

Попробуйте полностью исключить строку запроса в URL-адресе ресурса и просто введите fragmentName в качестве параметра вызова действия. Он должен добавить его в строку запроса, если ее нет в списке параметров URL.

$resource(".../port/trimService/fragments/").get({fragmentName: 'blah'}) 
+0

Проблема, кажется, лежит в? отметьте в действии, я не могу найти никакой работы для этого, я действительно хотел бы сохранить строку запроса, поскольку позже у меня будет несколько запросов. – Larsbars

+0

вы можете использовать строку запроса, как я уже сказал, если ваши параметры не найдены в шаблоне URL-адреса, то угловые добавят их в строку запроса. – akonsu

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