2014-09-11 1 views
0

Я пытаюсь сделать HTTP GET в угловом так:выкладывает объект с параметрами - угловые JS

$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 даже на одном из свойств, то веб-сервис по умолчанию вернет все, может кто-нибудь показать мне способ динамически делать это?

+0

вы можете предоставить HTML для ваша форма также будет проще найти решение для вас – maurycy

+0

Вы используете параметры как имя объекта и как вход. – topless

+0

@topless это даст мне тот же результат, если я изменю его ... – user2405469

ответ

0

Вы можете использовать функцию для фильтрации объекта params.

Это один получает список 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 
});