所需的輸出我有JSON場像下面,
"newId":5
我有一個像我的搜索對象,
{aId: "5", aName: "Other"}
,並寫了過濾器一樣,
$filter('filter')($scope.races, {newId:myObj.aId},true);
我得到一個空數組作爲輸出。我試圖添加toString()也沒有工作。我做錯了什麼?
所需的輸出我有JSON場像下面,
"newId":5
我有一個像我的搜索對象,
{aId: "5", aName: "Other"}
,並寫了過濾器一樣,
$filter('filter')($scope.races, {newId:myObj.aId},true);
我得到一個空數組作爲輸出。我試圖添加toString()也沒有工作。我做錯了什麼?
你有兩個解決方案:1 爲了使數據類型相同的兩個領域:
$scope.races = [{"newId":5}]
var myObje = {aId: 5, aName: "Other"};
$filter('filter')($scope.races, {newId:myObje.aId},true);
注:援助= 5(不是「5」)。
2到編寫自定義比較
$filter('filter')($scope.races, {newId:myObje.aId},function(a,b){return a == b;});
注意事項:a == B(不是=== B)。
濾料的$scope.races
必須是一個數組,所以從JSON你的反應必須添加到一個數組,在這種情況下,您的代碼將工作
var myObj = {aId: "5", aName: "Other"};
$scope.races = [{newId: 5}]
var result = $filter('filter')($scope.races, {newId: myObj.aId}, true);
@ Aleksandar Gajic - 是它的相同結構。但它不起作用 – Hacker
這裏是jsfiddle鏈接http://jsfiddle.net/cajg4yxz/1/,你可以看到它在這個例子中工作 –
,因爲aId和newId不是相同的數據類型。 –
我做你的解決方案,我認爲這是工作正常。問題是在你的過濾器:
$scope.result = $filter('filter')($scope.races, {
newId: +$scope.myObj.aId //parse $scope.myObj.aId to int
}, true);
它工作時,我把aId作爲整數({aId:5,aName:「Other」}) –