我正在寫一個程序來學習AngularJS。這個方案有一個Ajax功能從API端點返回一個對象,像這樣:AngularJS迭代阿賈克斯返回對象
$.ajax(
{
url: "/api/request.json",
dataType: "json",
statusCode: {
404: function(){
console.log("Error 404");
}
},
success: function(data){
console.log("Successfully copied data to meteo_values");
fn(data); // do something with the data
},
error: function(err){
console.log(err);
}
}
);
我想通過使用AngularJS返回的對象進行迭代。現在,我使用jQuery注入數據的DIV中,像這樣:
function fn(val){
// populate the webpage with the values
var data_table = "<div class='data_table'><p>" + datetext + "</p>";
// iterate through val array
for (var value in val){
data_table += "<div class='card'><h2>" + val[value]["city"] + "</h2>";
data_table += "<table><tr><th>Orario</th><th>Temperatura</th><th>Umidità</th></tr>";
data_table += "<tr><td>" + val[value]["t1"]["ora"] + "</td><td>" + val[value]["t1"]["temperatura"] + "</td><td>" + val[value]["t1"]["humidity"] + "</td></tr>";
data_table += "<tr><td>" + val[value]["t2"]["ora"] + "</td><td>" + val[value]["t2"]["temperatura"] + "</td><td>" + val[value]["t2"]["humidity"] + "</td></tr>";
data_table += "<tr><td>" + val[value]["t3"]["ora"] + "</td><td>" + val[value]["t3"]["temperatura"] + "</td><td>" + val[value]["t3"]["humidity"] + "</td></tr>";
data_table += "</table></div>";
}
data_table += "</div>"
$(".results").append(data_table);
}
而是這樣做的(它的工作原理,但它似乎不優雅),我想用AngularJS。我嘗試使用ng-repeat,但沒有成功。 請考慮返回的對象是一個包含n個對象的數組的對象,該對象還包含另一組三個對象。
我已經嘗試過ng-repeat="(key,value) for name_of_the_variable_in_the_$scope"
我可能已經忘記了有用的信息,爲您幫我回答,我已經搜索的答案,但我沒有找到它。
編輯:
var meteoApp = angular.module('meteoapp', []);
meteoApp.controller('meteoPopulateCtrl', function ($scope) {
$scope.data = [];
$.ajax(
{
url: "/api/request.json",
dataType: "json",
statusCode: {
404: function(){
console.log("Error 404");
}
},
success: function(data){
$scope.data = data;
},
error: function(err){
console.log(err);
}
}
);
HTML標記
<div ng-app="meteoapp">
<div ng-controller="meteoPopulateCtrl">
<div class="results" ng-repeat="???">
something that is repeated
</div>
</div>
</div>
返回的對象(爲了美化)
[
{
"city":"a city",
"t1":
{
"ora":"01",
"temperatura":"7.2°",
"humidity":"92%"},
"t2":
{
"ora":"04",
"temperatura":"7.1°",
"humidity":"93%"},
"t3":
{
"ora":"07",
"temperatura":"7.4°",
"humidity":"94%"
}
}]
你可以發佈你用來測試的角度控制器和html代碼嗎? –
這似乎是[ng-repeat]的一個**非常基本的用法(https://docs.angularjs.org/api/ng/directive/ngRepeat)**。 – Mistalis
^^^^ +使用'$ http()'而不是'$ .ajax()' – Satpal