我正试图像这样做一个http get角度:
$http
.get(some url, {
params: {
description: params.description,
from: params.from,
to: params.to
}
})
.success(function (data,status) {
$scope.info_show = data
});
就是这样,params
对象参数是根据用户输入设置的,所以如果用户没有为from属性输入任何东西(某些输入文本fielt),那么它将是未定义的。
我的问题是我不能只传递params对象,因为它不会过滤,如果我甚至在其中一个属性上传递undefined,那么默认情况下Web服务将返回所有内容,有人可以告诉我一个方法动态地做这个?
答案 0 :(得分:0)
您可以使用函数来过滤params
对象。
这个会收到您要过滤的参数/属性列表以及要过滤的src
对象:
var filterParams = function(params, src) {
var result = {};
angular.forEach(params, function(p) {
if (angular.isDefined(src[p])) {
result[p] = src[p];
}
});
return result;
};
然后像这样使用它:
$http.get(some url, {
params: filterParams(['from', 'to', 'description'], params)
})
.success(function (data,status) {
$scope.info_show = data
});