从 angular 范围值动态更改分页页面大小
Dynamically change Pagination page size from angular scope value
我试图让用户更改 table 中要显示的行数。该 Web 应用程序适用于所有类型的设备,因此用户需要能够选择要显示的行数以最大限度地减少滚动。
这是javascript模型
$scope.pageSizes = [
{ size: 10},
{ size: 25, isSelected: true },
{ size: 50}
];
HTML代码。这是我的页面大小选择器。
<li ng-repeat="pageSize in pageSizes">
<a href="javascript:void(0)" ng-click="changePageSize(pageSize.size)"><span ng-class="{ orange: pageSize.isSelected }">{{pageSize.size}}</span></a>
</li>
和 table 在同一个 HTML 文件中。
<table st-table="users" st-safe-src="safeUsers" class="table-striped argus-table">
<thead>
<tr>
<th st-sort="id" class="sortable min-width">Id</th>
<th st-sort="username" class="sortable">Username</th>
<th st-sort="email" class="sortable">Email</th>
<th class="table-action-header"></th>
<th class="table-action-header"></th>
<th class="table-action-header"></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="user in users">
<td>ID</td>
<td>Username</td>
<td>Email</td>
<td>Option 1</td>
<td>Option 2</td>
<td>Option 3</td>
</tr>
</tbody>
<tfoot>
<tr>
<td class="text-center" st-pagination="" st-items-by-page="25" colspan="6"></td>
</tr>
</tfoot>
</table>
st-items-by-page="25"
is where I believe I must put my angular code.
我试过使用范围函数来查找新选择的
$scope.changePageSize = function (pageSize) {
$scope.filter.pageSize = pageSize;
_.find($scope.pageSizes, function (page) {
if (page === pageSize) {
$scope.selectedPageSize = page.size;
page.isSelected = true;
}
else
page.isSelected = false;
});
};
还有页脚
<tfoot>
<tr>
<td class="text-center" st-pagination="" st-items-by-page="{{selectedPageSize}}" colspan="6"></td>
</tr>
</tfoot>
但是这会导致错误
Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 2 of the expression [{{getSelectedPageSize}}] starting at [{getSelectedPageSize}}].
如有任何帮助,我们将不胜感激。谢谢
不要使用模板符号 ({{scopeValue}}
) 提供每页的项目,只需提供一个表达式来解析您在 $scope
上的值
这个
st-items-by-page="{{selectedPageSize}}"
应该是这样
st-items-by-page="selectedPageSize"
中有例子
我试图让用户更改 table 中要显示的行数。该 Web 应用程序适用于所有类型的设备,因此用户需要能够选择要显示的行数以最大限度地减少滚动。
这是javascript模型
$scope.pageSizes = [
{ size: 10},
{ size: 25, isSelected: true },
{ size: 50}
];
HTML代码。这是我的页面大小选择器。
<li ng-repeat="pageSize in pageSizes">
<a href="javascript:void(0)" ng-click="changePageSize(pageSize.size)"><span ng-class="{ orange: pageSize.isSelected }">{{pageSize.size}}</span></a>
</li>
和 table 在同一个 HTML 文件中。
<table st-table="users" st-safe-src="safeUsers" class="table-striped argus-table">
<thead>
<tr>
<th st-sort="id" class="sortable min-width">Id</th>
<th st-sort="username" class="sortable">Username</th>
<th st-sort="email" class="sortable">Email</th>
<th class="table-action-header"></th>
<th class="table-action-header"></th>
<th class="table-action-header"></th>
</tr>
</thead>
<tbody>
<tr ng-repeat="user in users">
<td>ID</td>
<td>Username</td>
<td>Email</td>
<td>Option 1</td>
<td>Option 2</td>
<td>Option 3</td>
</tr>
</tbody>
<tfoot>
<tr>
<td class="text-center" st-pagination="" st-items-by-page="25" colspan="6"></td>
</tr>
</tfoot>
</table>
st-items-by-page="25"
is where I believe I must put my angular code.
我试过使用范围函数来查找新选择的
$scope.changePageSize = function (pageSize) {
$scope.filter.pageSize = pageSize;
_.find($scope.pageSizes, function (page) {
if (page === pageSize) {
$scope.selectedPageSize = page.size;
page.isSelected = true;
}
else
page.isSelected = false;
});
};
还有页脚
<tfoot>
<tr>
<td class="text-center" st-pagination="" st-items-by-page="{{selectedPageSize}}" colspan="6"></td>
</tr>
</tfoot>
但是这会导致错误
Error: [$parse:syntax] Syntax Error: Token '{' invalid key at column 2 of the expression [{{getSelectedPageSize}}] starting at [{getSelectedPageSize}}].
如有任何帮助,我们将不胜感激。谢谢
不要使用模板符号 ({{scopeValue}}
) 提供每页的项目,只需提供一个表达式来解析您在 $scope
这个
st-items-by-page="{{selectedPageSize}}"
应该是这样
st-items-by-page="selectedPageSize"
中有例子