2014-09-11 66 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對象參數是基於用戶輸入的設定,所以如果用戶沒有輸入任何東西來從屬性(某些輸入文本字段)它將是未定義的。

我的問題是,我不能只傳遞params對象,因爲它不會過濾,如果我傳遞未定義的屬性,那麼web服務默認情況下會返回一切,有人會告訴我一個動態地做這件事的方式?

+0

你能爲提供HTML您的表單也會更容易爲您找到解決方案 – maurycy 2014-09-11 09:55:23

+0

您將params用作對象名稱和輸入。 – topless 2014-09-11 09:57:12

+0

@topless它會給我同樣的結果,如果我改變它... – user2405469 2014-09-11 09:59:44

回答

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 
});