我想通过$ resource请求将域名作为参数传递。我试过这个,但它不起作用。我不明白为什么。任何线索? 它输出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,欢迎他。
答案 0 :(得分:1)
真正的问题源于在ngResource中添加对IPv6 URL的支持(请参阅https://github.com/angular/angular.js/issues/12512)。如果您查看提交,他们在进行参数替换时实际上忽略了域/主机名。如上所述,降级到1.4.3解决了这个问题。幸运的是,这似乎是1.4.3和1.5.5之间的唯一变化,所以降级并不是一个太大的问题。
为了完整起见,我还在角度项目中创建了此问题,以跟踪对其的永久修复:https://github.com/angular/angular.js/issues/14542。
答案 1 :(得分:0)