尝试使用 angularjs ng-repeat 显示 json 数据无效
trying to display json data with angularjs ng-repeat not working
我见过很多方法来做到这一点,但大多数都已经很老了,我想确保我做的是正确的。现在,我使用的方式不起作用,我觉得我错过了一些东西。
我恢复 JSON 正常,我只需要在单击按钮后让它显示在 table 中。
这里是JSON。这就是我要从我们的服务器获取它的方式,我不能添加任何 "var JSON =" 或向数据添加任何范围如“$scope.carrier”,除非有办法在之后添加它我已经获取了数据。
{
"carrier":
[
{
"entity": "carrier",
"id": 1,
"parentEntity": "ORMS",
"value": "Medica"
}, {
"entity": "carrier",
"id": 2,
"parentEntity": "ORMS",
"value": "UHG"
}, {
"entity": "carrier",
"id": 3,
"parentEntity": "ORMS",
"value": "Optum"
}, {
"entity": "carrier",
"id": 4,
"parentEntity": "ORMS",
"value": "Insight"
}, {
"entity": "carrier",
"id": 5,
"parentEntity": "ORMS",
"value": "Insight"
}
]
}
这里是 app.js 文件以恢复 JSON 数据:
var app = angular.module('myTestApp', []);
app.controller('myController', ['$scope', '$http', function($scope, $http) {
var url = 'test.json';
$scope.clickButton = function() {
$http.get(url).success(function(data) {
console.log(data);
});
}
}]);
当然还有 HTML:
<div class="col-lg-12 text-center">
<button type=button class="btn btn-primary load" ng-click="clickButton()">Click!</button>
<table class="">
<tbody ng-repeat="carrier in carriers">
<tr>
<td>
<h3 class="">{{ module.entity }}</h3>
<h3 class="">{{ module.id }}</h3>
<h3 class="">{{ module.parentEntity }}</h3>
<h3 class="">{{ module.value }}</h3>
</td>
</tr>
</tbody>
</table>
</div>
我也想知道是否可以使用 ng-grid 将其放入 table。我知道他们刚刚将其升级到 ui 网格,所以我不确定这是否仍然是一种可行的方法。
此外,我没有收到错误,数据现在不会显示在 table 中。我所知道的是它正确地返回数据,只是没有显示在 table.
感谢任何帮助。
您永远不会将返回数组的值赋给 $scope.carriers
。
在你说 console.log(data);
的那一行添加:
$scope.carriers = data.data;
这是更新后的 clickButton
函数(更改了变量名以减少混淆):
$scope.clickButton = function() {
$http.get(url).success(function(returnValue) {
$scope.carriers = returnValue.data;
});
};
我看了你的 plunker 好像你需要:
- 添加angular脚本
- 连接应用程序和控制器
- 你在转发器里的变量不对,我改一下
看看这个固定的插件:
http://plnkr.co/edit/TAjnUCMOBxQTC6lNJL8j?p=preview
$scope.clickButton = function() {
$http.get(url).success(function(returnValue) {
alert(JSON.stringify(returnValue.carrier));
$scope.carriers = returnValue.carrier;
});
}
我见过很多方法来做到这一点,但大多数都已经很老了,我想确保我做的是正确的。现在,我使用的方式不起作用,我觉得我错过了一些东西。
我恢复 JSON 正常,我只需要在单击按钮后让它显示在 table 中。
这里是JSON。这就是我要从我们的服务器获取它的方式,我不能添加任何 "var JSON =" 或向数据添加任何范围如“$scope.carrier”,除非有办法在之后添加它我已经获取了数据。
{
"carrier":
[
{
"entity": "carrier",
"id": 1,
"parentEntity": "ORMS",
"value": "Medica"
}, {
"entity": "carrier",
"id": 2,
"parentEntity": "ORMS",
"value": "UHG"
}, {
"entity": "carrier",
"id": 3,
"parentEntity": "ORMS",
"value": "Optum"
}, {
"entity": "carrier",
"id": 4,
"parentEntity": "ORMS",
"value": "Insight"
}, {
"entity": "carrier",
"id": 5,
"parentEntity": "ORMS",
"value": "Insight"
}
]
}
这里是 app.js 文件以恢复 JSON 数据:
var app = angular.module('myTestApp', []);
app.controller('myController', ['$scope', '$http', function($scope, $http) {
var url = 'test.json';
$scope.clickButton = function() {
$http.get(url).success(function(data) {
console.log(data);
});
}
}]);
当然还有 HTML:
<div class="col-lg-12 text-center">
<button type=button class="btn btn-primary load" ng-click="clickButton()">Click!</button>
<table class="">
<tbody ng-repeat="carrier in carriers">
<tr>
<td>
<h3 class="">{{ module.entity }}</h3>
<h3 class="">{{ module.id }}</h3>
<h3 class="">{{ module.parentEntity }}</h3>
<h3 class="">{{ module.value }}</h3>
</td>
</tr>
</tbody>
</table>
</div>
我也想知道是否可以使用 ng-grid 将其放入 table。我知道他们刚刚将其升级到 ui 网格,所以我不确定这是否仍然是一种可行的方法。
此外,我没有收到错误,数据现在不会显示在 table 中。我所知道的是它正确地返回数据,只是没有显示在 table.
感谢任何帮助。
您永远不会将返回数组的值赋给 $scope.carriers
。
在你说 console.log(data);
的那一行添加:
$scope.carriers = data.data;
这是更新后的 clickButton
函数(更改了变量名以减少混淆):
$scope.clickButton = function() {
$http.get(url).success(function(returnValue) {
$scope.carriers = returnValue.data;
});
};
我看了你的 plunker 好像你需要:
- 添加angular脚本
- 连接应用程序和控制器
- 你在转发器里的变量不对,我改一下
看看这个固定的插件:
http://plnkr.co/edit/TAjnUCMOBxQTC6lNJL8j?p=preview
$scope.clickButton = function() {
$http.get(url).success(function(returnValue) {
alert(JSON.stringify(returnValue.carrier));
$scope.carriers = returnValue.carrier;
});
}