ng-Table 排序不正常
ng-Table sorting not working well
我使用 ng-Table 创建了一个应用程序,该应用程序运行良好,它使用 ng-Table 生成了 table。我面临的问题是 table 排序不起作用。我的代码如下
HTML:
<table ng-table="tableParams" class="table">
<tr ng-repeat="user in $data">
<td data-title="'Name'" sortable="'name'">
{{user.name}}
</td>
<td data-title="'Age'" sortable="'age'">
{{user.age}}
</td>
</tr>
和我的js代码:
var app = angular.module('myApp', ['ngTable']).
controller('mycontroller', function($scope, NgTableParams)
{
var data = [{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}];
$scope.tableParams = new NgTableParams({
sorting: {
name: 'asc'
}
}, {
getData: function($defer, params) {
$defer.resolve(data);
}
});
});
有什么问题吗?
试试这个
<table ng-table="tableParams" class="table">
<tr ng-repeat="user in $data | orderBy:'-age'"">
<td data-title="'Name'">
{{user.name}}
</td>
<td data-title="'Age'">
{{user.age}}
</td>
</tr>
或
<table class="table">
<tr>
<th>Name</th>
<th>Age</th>
</tr>
<tr ng-repeat="user in $data | orderBy:'-age'">
<td>{{user.name}}</td>
<td>{{user.age}}</td>
</tr>
</table>
你试过Smart吗table。它是一个 Angularjs 模块,可以轻松地在 table 中显示数据,并具有一组内置功能,例如过滤、排序等:
http://lorenzofox3.github.io/smart-table-website/#section-intro
使用简单,外观精美!
试试这个。在 ngTable 文档中使用这种方式将数据绑定到 table.
$scope.tableParams = new NgTableParams({
sorting: {
name: 'asc'
}
}, {
dataset: data
});
这会起作用,您需要为数据添加 $filter。
var app = angular.module('myApp', ['ngTable']).
controller('mycontroller', function($scope, NgTableParams,$filter)
{
var data = [{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}];
$scope.tableParams = new NgTableParams({
sorting: {
name: 'asc'
}
}, {
getData: function($defer, params) {
data = $filter('orderBy')(data, params.orderBy());
$defer.resolve(data);
//$defer.resolve(data);
}
});
});
我使用 ng-Table 创建了一个应用程序,该应用程序运行良好,它使用 ng-Table 生成了 table。我面临的问题是 table 排序不起作用。我的代码如下
HTML:
<table ng-table="tableParams" class="table">
<tr ng-repeat="user in $data">
<td data-title="'Name'" sortable="'name'">
{{user.name}}
</td>
<td data-title="'Age'" sortable="'age'">
{{user.age}}
</td>
</tr>
和我的js代码:
var app = angular.module('myApp', ['ngTable']).
controller('mycontroller', function($scope, NgTableParams)
{
var data = [{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}];
$scope.tableParams = new NgTableParams({
sorting: {
name: 'asc'
}
}, {
getData: function($defer, params) {
$defer.resolve(data);
}
});
});
有什么问题吗?
试试这个
<table ng-table="tableParams" class="table">
<tr ng-repeat="user in $data | orderBy:'-age'"">
<td data-title="'Name'">
{{user.name}}
</td>
<td data-title="'Age'">
{{user.age}}
</td>
</tr>
或
<table class="table">
<tr>
<th>Name</th>
<th>Age</th>
</tr>
<tr ng-repeat="user in $data | orderBy:'-age'">
<td>{{user.name}}</td>
<td>{{user.age}}</td>
</tr>
</table>
你试过Smart吗table。它是一个 Angularjs 模块,可以轻松地在 table 中显示数据,并具有一组内置功能,例如过滤、排序等:
http://lorenzofox3.github.io/smart-table-website/#section-intro
使用简单,外观精美!
试试这个。在 ngTable 文档中使用这种方式将数据绑定到 table.
$scope.tableParams = new NgTableParams({
sorting: {
name: 'asc'
}
}, {
dataset: data
});
这会起作用,您需要为数据添加 $filter。
var app = angular.module('myApp', ['ngTable']).
controller('mycontroller', function($scope, NgTableParams,$filter)
{
var data = [{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}];
$scope.tableParams = new NgTableParams({
sorting: {
name: 'asc'
}
}, {
getData: function($defer, params) {
data = $filter('orderBy')(data, params.orderBy());
$defer.resolve(data);
//$defer.resolve(data);
}
});
});