试图发布带有参数的对象-angular js

Trying to post object with parameters - angular js

本文关键字:对象 -angular js 参数 布带      更新时间:2023-09-26

我正在尝试在angular中执行http获取,如下所示:

$http
    .get(some url, {
        params: {
            description: params.description,
            from: params.from,
            to: params.to
        }
     })
     .success(function (data,status) {
          $scope.info_show = data
     });

事情是这样的,params对象参数是根据用户输入设置的,所以如果用户没有为from属性(一些输入文本字段)输入任何内容,它将是未定义的。

我的问题是,我不能只传递params对象,因为它不过滤,如果我传递甚至是其中一个属性的undefined,那么默认情况下web服务将返回所有内容,有人能给我展示一种动态执行此操作的方法吗?

您可以使用一个函数来过滤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
});