javascript - AngularJS 表格过滤器

标签 javascript html angularjs

我正在尝试使用 angularJS 来过滤表格中的数据。我需要从一个看起来像这样的 json 文件(示例文件)加载数据

[{name: "Moroni", age: 50},
            {name: "Tiancum", age: 43},
            {name: "Jacob", age: 27},
            {name: "Nephi", age: 29},
            {name: "Enos", age: 34},
            {name: "Tiancum", age: 43},
            {name: "Jacob", age: 27},
            {name: "Nephi", age: 29},
            {name: "Enos", age: 34},
            {name: "Tiancum", age: 43},
            {name: "Jacob", age: 27},
            {name: "Nephi", age: 29},
            {name: "Enos", age: 34},
            {name: "Tiancum", age: 43},
            {name: "Jacob", age: 27},
            {name: "Nephi", age: 29},
            {name: "Enos", age: 34}];

这是我的 HTML 文件:

    <!DOCTYPE html>
<html>
<head>
<script data-require="angular.js@*" data-semver="1.2.0-rc3-nonmin" src="http://code.angularjs.org/1.2.0-rc.3/angular.js"></script>
<script data-require="ng-table@*" data-semver="0.3.0" src="http://bazalt-cms.com/assets/ng-table/0.3.0/ng-table.js"></script>

<link data-require="ng-table@*" data-semver="0.3.0" rel="stylesheet" href="http://bazalt-cms.com/assets/ng-table/0.3.0/ng-table.css" />
<link data-require="bootstrap-css@*" data-semver="3.0.0" rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />



 <link rel="stylesheet" href="style.css" />
        <script src="script.js"></script>
    </head>

<body ng-app="main" ng-controller="DemoCtrl">


    <table ng-table="tableParams" show-filter="true" class="table">
    <tr ng-repeat="tests in test ">

        <td data-title="'Date'">
            {{test.date}}
        </td>
        <td data-title="'Computer/Server Name'">
            {{test.deviceName}}
        </td>
        <td data-title="'username'" filter="{ 'name': 'text' }">
            {{test.name}}
        </td>
        <td data-title="'Device Type'">
            {{test.deviceType}}
        </td>
    </tr>
</table>

</body>
</html>

这是 script.js 文件

var app = angular.module('main', ['ngTable']).
controller('DemoCtrl', function($http, $scope, $filter, ngTableParams) {
    $http.get('test.json')
       .then(function(res){
          var data = res.data; 
$scope.tableParams = new ngTableParams({
    page: 1,            // show first page
    count: 1000000000000000000,          // count per page
    filter: {
        name: ''       // initial filter
    }
}, {
    total: data.length, // length of data
    getData: function($defer, params) {
        // use build-in angular filter
        var orderedData = params.filter() ?
               $filter('filter')(data, params.filter()) :
               data;                   

        $scope.users = orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count());

        params.total(orderedData.length); // set total for recalc pagination
        $defer.resolve($scope.users);
    }

});alert(data);
}); 
});

正在读取文件,因为警报函数返回所有数据,但表中没有显示任何内容。

最佳答案

您的 Json 无效,所有属性都应该用 " 双引号括起来

[
    {
        "name": "Moroni",
        "age": 50,
        "deviceName": "test"
    },
    {
        "name": "Tiancum",
        "age": 43,
        "deviceName": "test"
    },
    {
        "name": "Jacob",
        "age": 27,
        "deviceName": "test"
    },
    {
        "name": "Nephi",
        "age": 29,
        "deviceName": "test"
    }
]

您还应该将从 Ajax 检索到的数据绑定(bind)到 $scope.tables

Working Plunkr

关于javascript - AngularJS 表格过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29605421/

相关文章:

jquery - 我无法使用 JQuery Mobile 让我的背景填满整个屏幕

javascript - Angular 提供者错误 - 必须定义 $get 工厂方法

javascript - javascript 可以有多少行?

javascript - 将文本换行到下拉的下一行

javascript - 在 iOS native 弹出窗口中单击 "Allow"

php - PHP 中的 HTML <pre> 自动换行不起作用

android - 如何使用 AngularJS 从 Android Phonegap 应用程序的 www 文件夹中读取 JSON 文件

angularjs - 如何隐藏html5验证弹出消息

javascript - 显示 "show more"按钮并隐藏第二行

javascript - AngularJS 过滤器值例程在 null 时不起作用