Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular.JS,将JSON数组显示为表_Javascript_Angularjs - Fatal编程技术网

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

Javascript Angular.JS,将JSON数组显示为表,javascript,angularjs,Javascript,Angularjs,我想使用JADE和Angular.JS将JSON文件中数组的内容显示为表 服务器传递此表结构: { "Table1": [ { "id": 1, "name": "Foo" }, { "id": 2,

我想使用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}}
它可以工作:显示两个表,每个表包含其中一个表的值

然而,我想把“表1”和“表2”作为两个表的标题,我被卡住了

我的控制器如下所示:

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() {
        ...
p {{nameList[0]}}
但我得到了同样的结果

console.log打印正确的值;但是,如果我尝试显示如下值:

app.controller('myCtrl', function($scope){
    window.onload = function() {
        ...
p {{nameList[0]}}
什么也没发生。我试图将$scope作为参数传递给函数,但得到了一个“$scope未定义”错误

我的问题是:

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

  • 我可以应用哪种方法来使用数组的值作为表的标题,这被认为是良好的实践


  • 谢谢。

    各种各样的变量名不匹配,您不需要在控制器中使用任何关于
    angular.element
    的内容来创建作用域。建议浏览一些我不喜欢的教程;但是,如果我不这样做,脚本就根本无法使用“列表”;你能指出不匹配的地方吗?无法看到任何。请在中创建演示。与显示的代码不符