使用 angular 和 ng-repeat 从 Ajax JSON 加载表

Posted

技术标签:

【中文标题】使用 angular 和 ng-repeat 从 Ajax JSON 加载表【英文标题】:Load table from Ajax JSON with angular and ng-repeat 【发布时间】:2017-11-05 15:51:12 【问题描述】:

我尝试使用 Angular 和 ng-repeat 从 Ajax json 加载 html 表格。 我的问题是 JSON 有点复杂,我不知道如何访问“informationstyp”,这是我想在表格中显示的内容。 JSON(“值”)的根是一个列表。下一级(“informationstyper”)也是一个列表。

如何将“informationstyp”放入表格中? 我应该在我的 html 中写什么而不是 data.arendeslagId

我想要的表格是:

FK1002

FK1003

FK1004

感谢您的帮助。

我的html:

        <table class="table table-hover">
            <thead>
            <tr>
                <th>Arendeslagid</th>
            </tr>
            </thead>
            <tbody>
            <tr ng-repeat="data in infotyper">
                <td>data.arendeslagId</td>
            </tr>
            </tbody>
        </table>

我的 javascript

    $scope.infotyper = "";

    $scope.invoke = function() 
        $.ajax(
               "cache": false,
               "async": true,
               "crossDomain": true,
               "url": url",
               "method": "POST",
               "headers": 
                   "cache-control": "no-cache",
               ,
            success: function (response) 
                   $scope.infotyper= response;
               
           );
        ;

我的 JSON 响应:

【问题讨论】:

你可以在 Angular 中使用 $http 服务方法而不是 jquery ajax。 @hasan 谢谢,我现在改成$http 【参考方案1】:

尝试改变这一点:

success: function (response) 
  $scope.infotyper= response;

到这里:

success: function (response) 
  $scope.infotyper= response.values;
  $scope.$apply();

如果您使用 AngularJS,我强烈建议您使用 $http 服务而不是 jQuery 来处理 AJAX 请求

【讨论】:

这也不行。如何进入 JSON 的下一个级别(“informationstyper”)? 该字段是一个数组。所以你需要另一个 ng-repeat 来在这些元素中循环。例如:&lt;tr ng-repeat="data in infotyper"&gt; &lt;td&gt;data.arendeslagId&lt;/td&gt; &lt;td ng-repeat="typer in data.informationstyper"&gt;typer.informationstyp&lt;/td&gt; &lt;/tr&gt; 谢谢,这正是我所需要的!

以上是关于使用 angular 和 ng-repeat 从 Ajax JSON 加载表的主要内容,如果未能解决你的问题,请参考以下文章

angular.js ng-repeat 带有 html 内容的项目

Angular.Js 性能、大型数据集、ng-repeat、带有过滤器和双向绑定的 html 表

Angular 5 ng-repeat 实现

angular.js ng-repeat 用于创建网格

Angular.js ng-repeat 跨多个元素

如何从其他`ng-repeat`元素获取`data`到当前元素指令