【问题标题】:fill json data in html dynamically动态填充html中的json数据
【发布时间】:2016-06-05 18:51:06
【问题描述】:

我想使用 AngularJS 从 json 文件中填充表格。

json 文件可能会不时变化(动态数据)。

要求是:通过解析json文件将表格填入html。 表在view.html 文件中,AngularJS 代码应该在view.js 中。

JSON 文件:(服务树下的 id 可能更多)

{
"result": {
    "services": [
        {
            "id": 1,
            "name": "My UI for some project that I'm doing that won't fit",
            "application": "app",
            "message": "application",
            "status": 1
        },
        {
            "id": 2,
            "name": "My DB for some project that I'm doing",
            "application": "app1",
            "message": "application1",
            "status": 3
        },
        {
            "id": 3,
            "name": "Another service",
            "application": "app2",
            "message": "application2",
            "status": 3
        }
    ],
 }
}

输出表应如下所示:

PS:应该设置表格对齐方式,因为名称值可能有也可能没有更多信息。

谢谢

【问题讨论】:

  • 那么你已经尝试了什么?你设置好角度控制器了吗?
  • 要求:blahblahblah。付款:????
  • Stackoverflow 不是“为我编写代码”服务。请先自行尝试,然后返回您的代码。
  • 自己做作业
  • 为语法道歉,我尝试使用控制器,但无法获取动态数据,但当 json 文件为静态时,我能够获取结果。 PS:我无法像在工作场所那样附加代码,我无法访问其他网站。

标签: javascript html arrays angularjs json


【解决方案1】:

虽然,就像@Johannes Jander 所说,Stackoverflow 不是“为我编写代码”服务我会告诉你如何做到这一点。

如果您不介意列的顺序会有所不同,您可以轻松地迭代 throw 对象的属性,而无需操作 json 对象。如果订单很重要,请告诉我,我会帮你弄清楚。

要了解更多关于我们在这里的内容,请点击这些链接:

  1. ng-repeat 文档。
  2. How can I iterate over the keys, value in ng-repeat in angular

现在,进入代码:

angular.module('app', []).
controller('ctrl', function($scope) {
  $scope.json = {
    "result": {
      "services": [
        {
          "id": 1,
          "name": "My UI for some project that I'm doing that won't fit",
          "application": "app",
          "message": "application",
          "status": 1
        },
        {
          "id": 2,
          "name": "My DB for some project that I'm doing",
          "application": "app1",
          "message": "application1",
          "status": 3
        },
        {
          "id": 3,
          "name": "Another service",
          "application": "app2",
          "message": "application2",
          "status": 3
        }
      ],
    }
  }  
});
table {
  border-collapse: collapse;
}

td {
  border: 1px solid;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div data-ng-app="app" data-ng-controller="ctrl">
  <table data-ng-if="json.result.services.length > 0">
    <thead>
      <tr>
        <th data-ng-repeat="(key, value) in json.result.services[0]" data-ng-bind="key"></th>
      </tr>
    </thead>
    <tbody>
      <tr data-ng-repeat="service in json.result.services">
        <td data-ng-repeat="(key, value) in service" data-ng-bind="value"></td>
      </tr>
    </tbody>
  </table>
</div>

【讨论】:

  • 感谢您的帮助,实际上我是 Angular js 的新手............ ng-repeat 拯救了我的一天。
  • 我很高兴听到 ;) ng-repeat 是 AngularJS 的基础。
  • 我尝试并能够填满表格,但对齐似乎有些问题,因为很少有值占用更多空间,有什么办法可以解决吗?我尝试使用 span 并为列提供相等的宽度,但 html 以弹出窗口的形式显示.....任何想法
  • 您可以通过演示更新您的问题吗?或者也许用演示提出一个新问题并将链接粘贴到这里?所以它会对其他人有所帮助..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-31
  • 1970-01-01
  • 2015-08-15
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
  • 2018-12-18
相关资源
最近更新 更多