在 Angular 中对 API 的 $resource GET 调用中使用 [] 方括号作为参数的一部分不起作用
Using [] square brackets as part of a parameter in $resource GET call to API in Angular is not working
我正在尝试从 ajax-localized REST api 中获取用户数据,需要这样的参数:
/api/activity?filter[user_id]=1
我有一个工厂设置查询参数如下:
angular.module('app')
.factory('Activity',function($resource){
return $resource(ajaxInfo.api_url+'activity',
{ // Query parameters
filter: {
'[user_id]': '@userId'
},
},
{
'query':{
method:'GET',
headers: {
'X-WP-Nonce': ajaxInfo.nonce
},
isArray: false
}
});
})
我 console.logging 它在这样的模板中:
$scope.userOne = Activity.query({userId:1});
console.log($scope.userOne)
它正在返回
http:site.dev/api/activity?filter=%7B%22%5Buser_id%5D%22:%22@userId%22%7D&userId=1".
知道我做错了什么吗?
这是我为解决此问题所做的工作:
我创建了一个名为 "CurrentUser" 的工厂,这个工厂基本上 returns 来自 api 当前用户的对象。
然后我创建了一个控制器,当我想通过该用户 id 过滤 activity 时,将参数传递给 Activity 工厂。
$scope.userInfo = function(){
//call the CurrentUser and see if it's available and return it as u
CurrentUser.instance().then(function(u) {
//now query the activity factory and pass the filter as a string along with the user id as u.id
Activity.query({'filter[user_id]':u.id}, function(res){
$scope.userOne = res ;
console.log($scope.userOne);
});
})
};
$scope.userInfo();
我正在尝试从 ajax-localized REST api 中获取用户数据,需要这样的参数:
/api/activity?filter[user_id]=1
我有一个工厂设置查询参数如下:
angular.module('app')
.factory('Activity',function($resource){
return $resource(ajaxInfo.api_url+'activity',
{ // Query parameters
filter: {
'[user_id]': '@userId'
},
},
{
'query':{
method:'GET',
headers: {
'X-WP-Nonce': ajaxInfo.nonce
},
isArray: false
}
});
})
我 console.logging 它在这样的模板中:
$scope.userOne = Activity.query({userId:1});
console.log($scope.userOne)
它正在返回
http:site.dev/api/activity?filter=%7B%22%5Buser_id%5D%22:%22@userId%22%7D&userId=1".
知道我做错了什么吗?
这是我为解决此问题所做的工作:
我创建了一个名为 "CurrentUser" 的工厂,这个工厂基本上 returns 来自 api 当前用户的对象。
然后我创建了一个控制器,当我想通过该用户 id 过滤 activity 时,将参数传递给 Activity 工厂。
$scope.userInfo = function(){
//call the CurrentUser and see if it's available and return it as u
CurrentUser.instance().then(function(u) {
//now query the activity factory and pass the filter as a string along with the user id as u.id
Activity.query({'filter[user_id]':u.id}, function(res){
$scope.userOne = res ;
console.log($scope.userOne);
});
})
};
$scope.userInfo();