Angular.JS,将JSON数组显示为表

时间:2015-10-20 18:16:54

标签: javascript angularjs

我想使用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'错误。

我的问题是:

  1. 如何将angular.element中创建的变量传递给main函数和

  2. 使用数组的值作为表的标题,我可以应用哪种方法,并且被认为是一种好习惯?

  3. 感谢。

0 个答案:

没有答案