Передача доменного имени в качестве параметра с $resource в AngularJS

Я хочу передать доменное имя в качестве параметра с запросом $ ресурса. Я пробовал это, но это не работает. Я не понимаю, почему. Любая подсказка? Он выводит http://:url/ вместо переменной, которую я пытаюсь передать.

редактировать: переменная :url проходит, если я делаю что-то вроде этого: http://adomain.com/:url

Вот мой код:

Моя фабрика:

angular.module('myApp')
  .factory('LoadingContent', function LoadingContentFactory($resource) {
    return $resource('http://:url/wp-json/posts/?type[]=:type&filter[posts_per_page]=50&filter[order]=DESC', {type: '@type',url: '@url'}, {'get': {method: 'GET', isArray: true, params: {type: '@type',url: '@url'} }});
  });

Моя функция:

LoadingContent.get({
    url : $scope.selectedCompany.URL,
    type : $scope.selectedCompany.type,
})
.$promise.then(
    function(data){
        $scope.articles = data;
        openInfoModals.closeModal();
    }
);

Проблема решена: Проблема связана с версией angular-resource#1.4.5. Я вернулся к версии 1.4.3, и она работает.

Если у кого-то есть решение, как заставить его работать с 1.4.5, добро пожаловать.


person Matt Walterspieler    schedule 08.09.2015    source источник


Ответы (2)


Настоящая проблема связана с добавлением поддержки URL-адресов IPv6 в ngResource (см. https://github.com/angular/angular.js/issues/12512). Если вы посмотрите на фиксацию, они фактически игнорировали домен/имя хоста при замене параметров. Как уже упоминалось, переход на версию 1.4.3 устраняет проблему. К счастью, это, кажется, единственное изменение между 1.4.3 и 1.5.5, поэтому переход на более раннюю версию не представляет большой проблемы.

Для полноты картины я также создал эту проблему в проекте angular, чтобы отслеживать ее постоянное исправление: https://github.com/angular/angular.js/issues/14542.

person bksaville    schedule 29.04.2016

Я не думаю, что в вашем коде что-то не так.

Я создал plunker, реплицирующий ваш код, и он отлично работает.

Вот его ссылка: http://plnkr.co/edit/RsI3TgKwcjGEXcTMKoQR?p=preview

person maddygoround    schedule 08.09.2015
comment
Он выводит эту ошибку: XMLHttpRequest не может загрузить http://:url/wp-json/posts/?type[]=publication&filter[posts_per_page]=50&filter[order]=DESC. Как видите, :type =› Публикация, но :url не проходит. Это странно. - person Matt Walterspieler; 09.09.2015
comment
Вы проверили плункер... я не вижу ошибки, у меня все работает хорошо - person maddygoround; 09.09.2015
comment
Проблема решена: Проблема связана с версией angular-resource # 1.4.5. Я вернулся к версии 1.4.3, и она работает. Спасибо. - person Matt Walterspieler; 09.09.2015