我想使用JADE和Angular.JS将JSON文件中的数组内容显示为表格。
服务器传递此表结构:
{
"Table1": [
{
"id": 1,
"name": "Foo"
},
{
"id": 2,
"name": "Bar"
}
],
"Table2": []
}
像这样:
body(ng-app='myApp', ng-controller='myCtrl' ng-init='list= #{JSON.stringify(list)}')
div(ng-repeat="table in list[0]")
.col-lg-3
table.table.table-bordered
thead
tr
th Title
tbody(ng-repeat="item in table | orderBy:'id' track by item.id")
tr
td.name {{item.name}}
它的工作原理:显示两个表,每个表包含一个表的值。
但是,我想把“Table1”和“Table2”作为两张表的标题,我被卡住了。
我的控制器看起来像这样:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope){
$scope.nameList = [];
angular.element(document).ready(function(){
for(i in $scope.list[0])
$scope.nameList.push(i);
console.log($scope.nameList);
});
});
我需要将我的函数包装在angular.element语句中,否则$ scope.list是未定义的。我试图将指令包装在window.onload语句中(奇怪地在另一页中工作),如下所示:
app.controller('myCtrl', function($scope){
window.onload = function() {
...
但我得到了同样的结果。
console.log输出正确的值;但是,如果我尝试显示这样的值:
p {{nameList[0]}}
什么都没发生。我试图将$ scope作为参数传递给函数,但我得到'$ scope is undefined'错误。
我的问题是:
如何将angular.element中创建的变量传递给main函数和
使用数组的值作为表的标题,我可以应用哪种方法,并且被认为是一种好习惯?
感谢。