【问题标题】:Bind Json Data to HTML TABLE将 Json 数据绑定到 HTML TABLE
【发布时间】:2015-11-06 05:42:30
【问题描述】:

我是角度编程的新手,

我想将从 web 服务获取的 json 数据绑定到 html 表,

这是我的代码:

<!DOCTYPE html>
<html>
<head>
    <title>LIST OF USER Sample</title>
    <script src="../Scripts/angular.min.js"></script>
    <script src="../Scripts/module.js"></script>
    <script>

        function PeopleCtrl($scope, $http) {

            $scope.people = [];

            $scope.loadPeople = function () {

                var httpRequest = $http
                    ({
                        method: 'GET',
                        url: 'http://10.17.44.236:9090/MobileBootcamp.svc/getalluseravailability'

                    })
                    .success(function (data, status) {
                        debugger;
                        $scope.people = data;

                    });


            };
            $scope.loadPeople();
        }

    </script>
</head>
<body>
    <div ng-app="app">
        <div ng-controller="PeopleCtrl" ng-init="loadPeople()">
            <table>
                <tr>
                    <th>Id</th>
                    <th>Availibility</th>
                </tr>
                <tr ng-repeat="x in people.Datalist[0]">
                    <td>{{x.UserID}}</td>
                    <td>{{x.Availability}}</td>
                </tr>
                <tr>
                    <td>{{people.DataList[0].UserID}}</td>
                    <td>{{people.DataList[0].Availability}}</td>
                </tr>
                <tr>
                    <td>{{people.DataList[1].UserID}}</td>
                    <td>{{people.DataList[1].Availability}}</td>
                </tr>

            </table>
        </div>
    </div>


    <script src="cordova.js"></script>
    <script src="js/platformOverrides.js"></script>
    <script src="js/index.js"></script>
</body>
</html>

这是来自网络服务的 json

{"Status":true,"Message":"","Data":null,"DataList":[{"ChangeBy":"Admin","ChangeDate":"\/Date(1439437580137+0700)\/","ChangeNo":2,"CreateBy":"Admin","CreateDate":"\/Date(1439437580137+0700)\/","Availability":true,"LastCheckIn":"\/Date(1439437645420+0700)\/","UserID":"Admin"},{"ChangeBy":"ITK_ABD","ChangeDate":"\/Date(1439398800000+0700)\/","ChangeNo":1,"CreateBy":"ITK_ABD","CreateDate":"\/Date(1439398800000+0700)\/","Availability":false,"LastCheckIn":"\/Date(1439398800000+0700)\/","UserID":"ITK_ABD"}]}

我已经尝试过“ng-repeat”,但是没有用,

数据就像 Data --> DataList--> [0] --> userid,availability,etc...

提前谢谢

【问题讨论】:

  • 应该是
  • 你的http请求可行吗?我跟着它去了,不可用

标签: javascript html angularjs cordova


【解决方案1】:

您不需要[0]。您的ng-repeat 在这里获取列表的所有元素。你只需要给出你的列表,而不是索引和角度就可以了。

<tr ng-repeat="x in people.DataList">

【讨论】:

  • 拼写错误。它的 people.DataList 不是 people.Datalist
【解决方案2】:

按照以下方式进行操作 -

<tr ng-repeat="x in people.Datalist">
    <td>{{x.UserID}}</td>
    <td>{{x.Availability}}</td>
</tr>

由于您在 Datalist 中有对象数组,您应该迭代 DataList 而不是 DataList[0]

【讨论】:

    【解决方案3】:

    不需要 [0]。我们不想遍历您的第一个对象,因此只需 people.DataList 即可完成这项工作。它将遍历该数组中的所有对象。

               <tr ng-repeat="x in people.DataList">
                    <td>{{x.UserID}}</td>
                    <td>{{x.Availability}}</td>
                </tr>
    

    【讨论】:

      【解决方案4】:

      您正在尝试在此处重复对象:

      <tr ng-repeat="x in people.Datalist[0]">
      

      您只能在数组数据类型上重复。所以你必须这样做:

      <tr ng-repeat="x in people.Datalist">
      

      【讨论】:

        猜你喜欢
        相关资源
        最近更新 更多
        热门标签