2015-05-07 46 views
0

在此基礎上fiddleAngularJS:無法檢索JSON文件

我也跟着通過除了我試着打一個JSON文件,而不是我目前正在創建一個動態下拉。我的代碼如下所示:

scope.metro = [{"branch": "SM North EDSA"}, {"branch": "Trinoma"}, {"branch": "Xanland Katipunan"}, {"branch": "Farmers Market"}, {"branch": "Alimall"}, {"branch": "SSX Caloocan"}, {"branch": "Victory Mall"}, {"branch": "SM Valenzuela"}, {"branch": "City Square Malabon"}, {"branch": "SM Novaliches"}, {"branch": "SM Fairview"}, {"branch": "Zabarte Mall"}, {"branch": "SM Megamall"}, {"branch": "EDSA Shangrila"}, {"branch": "Robinsons Galleria"}, {"branch": "Greenhills"}, {"branch": "R. Pioneer"}, {"branch": "SM Taytay"}, {"branch": "SM Masinag"}, {"branch": "SM Marikina"}, {"branch": "Rob Metro East"}, {"branch": "SSX Marikina"}, {"branch": "Burke Plaza"}, {"branch": "Binondo"}, {"branch": "Rob Ermita"}, {"branch": "SM Marikina"}, {"branch": "SM San Lazaro"}, {"branch": "SM Centerpoint"}, {"branch": "SM MOA"}, {"branch": "SM Bicutan"}, {"branch": "SM Sucat"}, {"branch": "Rob Magnolia"}, {"branch": "SM Paranaque"}, {"branch": "Coloc Palawan"}, {"branch": "Cash & Carry"}, {"branch": "Greenbelt 1"}, {"branch": "Waltermart Makati"}, {"branch": "Ministop Cattleya"}, {"branch": "Market Market"}, {"branch": "Festival Mall"}, {"branch": "SM Muntinlupa"}, {"branch": "SM Southmall"}, {"branch": "SM Las Pinas"}, {"branch": "Commonwealth"}]; 
scope.central = http.get('central.json'); 
scope.north = http.get('north.json'); 
scope.south = http.get('south.json'); 
scope.visayas = http.get('visayas.json'); 
scope.mindanao = http.get('mindanao.json'); 

scope.region = [ 
{ type: 'Metro Manila', data:scope.metro, displayName:'branch' }, 
{ type: 'Central Luzon', data:scope.central, displayName:'branch'}, 
{ type: 'North Luzon', data:scope.north, displayName:'branch'}, 
{ type: 'South Luzon', data:scope.south, displayName:'branch' }, 
{ type: 'Visayas', data:scope.visayas, displayName:'branch'}, 
{ type: 'Mindanao', data:scope.mindanao, displayName:'branch'} 

];

scope.metro的工作,但其餘連接到JSON文件時不會。我假設它會工作,因爲它實際上是相同的結構。我在這裏做錯了什麼?

[編輯]

我想這個HTTP注入起初我上面做了一些你的回答之前:

http.get('mindanao.json').success(function(data){ 
    scope.mindanao = data; 
}) 

這沒有工作,這就是爲什麼我試過的其他方式。所以我認爲它與JSON任務有關。

+0

'http.get'返回一個承諾,而不是數據本身 – devqon

+0

從js小提琴不清楚,但你也需要注入'''http http'''到任何你打電話的地方。即。控制器或工廠 –

回答

2

因爲http.get返回一個承諾,而不是數據本身,這是行不通的。你必須在成功函數添加數據:

$http.get('central.json').success(function (data) { 
    scope.central = data; 
}); 

介意加入scope.centralscope.region時不會在這裏工作,因爲它可能不是產品尚未推出。更好的辦法是等待所有的承諾解決,然後將數據添加到scope.region對象。 Here可以找到如何做到這一點。

+0

這是我做過的最初的方法。它仍然不起作用,因此我使用了我上面寫的那個。 – ralphcarlo

+0

如何在添加到'scope.region'之前使其所有承諾都解決? – ralphcarlo

+0

http://stackoverflow.com/questions/21759361/wait-for-all-promises-to-resolve – devqon