code on plunkr所以我的任務是顯示一個特定的市場列表,我的目標是在選項中選擇一個市場名稱,以便查看其詳細信息。另外,如果這個市場有任何其他的子市場,我也可以查看它們。我使用angularjs進行編碼,使用嵌套的json數據並使用ui-router在不同的狀態中導航(如果第一個狀態顯示主要市場,下一個將顯示其詳細信息或其子市場)。第一個州很好。但我無法找到正確的邏輯來顯示下一個狀態的適當數據。下面是我做了什麼:無法訪問嵌套的Json數據
app.controller('mktctrl', function($scope,$state){
$scope.mrData={
"supermkt":[
{ "id":10,
"name":"val1",
"submkt":[
{ "sid":101,
"sname":"val1.1",
... ,
"submkt":[
{ "sid":1011,
"sname":"val1.1.1",
...
},
{ "sid":1012,
"sname":"val1.1.2",
...
}
]
},
{ "sid":102,
"sname":"val1.2",
...
}
],
"supermkt":[
{ "id":103,
"name":"val1.3",
"submkt":[
{....}
]
}
]
},
{ "id":11,
"name":"val2",
....
}
]
};
$scope.mktname=[];/*stores main top level market*/
angular.forEach($scope.mrData.supermkt,function(mar){
$scope.mktname.push(mar);
});
});
/*現在是什麼出現在第一狀態就像是
VAL1列表,
VAL2 ..
我想是時候,我點擊其中一個(我用ui-sref)說「val1」,我把它帶到另一個只顯示「val1」下的「submkt」或「supermkt」的細節或名稱等等。我嘗試這樣做:
for(var i=0;i<$scope.mktname.length;i++)
{
for(var j=0;j<$scope.mktname[i].submkt.length<0;j++)
$scope.submktname.push($scope.mktname[i].submkt[j]);
}
上面顯示的錯誤:「未定義不是一個對象(評估十)」(我怎麼想正確地訪問這些子陣列) 此外,當我寫了這個代碼,即使第一狀態不會顯示,我的應用程序頁面是完全空白的。 因爲我也認爲上述邏輯會遍歷mktname數組中的所有對象,並可能將所有(val1,val2,..)的「submkt」細節存儲在submktname中,所以我無法弄清楚適當的邏輯。一些幫助詳細解釋會有很大幫助。謝謝。
現在沒有錯誤。但是不會顯示任何數據。我在哪裏可以看到我的數據是否已經存儲。 – ken
添加了snippest幫助,內部也存在問題for循環條件以及 –
我的問題仍然沒有解決。正如我所說的,這段代碼只訪問submkt細節,而不是「supermkt」細節,它也是val1下子細節的一部分。此外,它還將所有超級市場的細節(val1,val2)放在一起,並將它們放在submktname中。我無法找到確切的邏輯。 – ken