AngularJS ng-Grid CurrentPage数字无法显示
2015-05-27 16:42
691 查看
从网上搜罗一个ng-grid控件,自己动手学习时发现当前第几页没有显示,而其他的功能则一切都是OK的,原以为是我的js代码出现问题,一步步确认自己的代码没有问题后,所以我在源代码里面加了{{pagingOptions.currentPage}},但是经测试后发现currentPage是有数据的(如图一),后来把源代码里里面的 <input class=\"ngPagerCurrent\" min=\"1\" max=\"{{maxPages()}}\" type=\"number\" style=\"width:50px;
height: 24px; margin-top: 1px; padding: 0 4px;\" ng-model=\"pagingOptions.currentPage\"/> type=\"number\"改成 type=\"text\"就好了(如图二),可是不知道为什么会这样,希望有人能解答一下
![](http://blog.csdn.net/secondgalaxy/article/details/16368795)
![](https://img-blog.csdn.net/20131117130416109?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2Vjb25kZ2FsYXh5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20131117130436750?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc2Vjb25kZ2FsYXh5/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](http://blog.csdn.net/secondgalaxy/article/details/16368795)
注明一下,我是先将一个子模块myApp.ctrl.dataGrid加入到模块myApp中,然后再将ngGrid到加入到myApp.ctrl.dataGrid中的,源代码如下
[html]
view plaincopyprint?
<style type="text/css">
.gridStyle {
border: 1px solid rgb(212,212,212);
width: 800px;
height: 300px;
}
.green {
background-color: green;
color: white;
}
</style>
<div class="row" data-ng-controller="myController">
<div class="gridStyle" data-ng-grid="gridOptions">
</div>
</div>
[javascript]
view plaincopyprint?
angular
.module('myApp', [
'myApp.ctrl.dataGrid'
])
angular
.module('myApp.ctrl.dataGrid', ['ngGrid'])
.controller('myController', function ($scope) {
var self = this;
//基本数据属性
$scope.mySelections = [];
//Grid数据
$scope.myData = [];
//Grid 筛选
$scope.filterOptions = {
filterText: '',
useExternalFilter: false
};
//总共条目
$scope.totalServerItems = 0;
//设置相关页面数据
$scope.pagingOptions = {
pageSizes: [250, 500, 1000],//page 行数可选值
pageSize: 250, //每页行数
currentPage: 1, //当前显示页数
};
//操作方法设置
self.getPagedDataAsync = function (pageSize, page, searchText) {
setTimeout(function () {
var data;
if (searchText) {
var ft = searchText.toLowerCase();
data = largeLoad().filter(function (item) {
return JSON.stringify(item).toLowerCase().indexOf(ft);
});
}
else {
data = largeLoad();
}
var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
$scope.myData = pagedData;
$scope.totalServerItems = data.length;
if (!$scope.$$phase) {
$scope.$apply();
}
}, 100);
};
$scope.$watch('pagingOptions', function () {
self.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
},true);
$scope.$watch('filterOptions', function () {
self.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
},true);
self.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage);
$scope.gridOptions = {
data: 'myData',
selectedItems: $scope.mySelections,
showSelectionCheckbox: true,
multiSelect: true,
showGroupPanel: false,
showColumnMenu: true,
enableCellSelection: true,
enableCellEditOnFocus: true,
enablePaging: true,
showFooter: true,
totalServerItems: $scope.totalServerItems,
filterOptions: $scope.filterOptions,
pagingOptions: $scope.pagingOptions,
i18n:'zh-cn',
columnDefs: [
{ field: 'name', displayName: 'Very Long Name Title', sortable: false },
{ field: 'allowance', width: 120, aggLabelFilter: 'currency', cellTemplate: '<div ng-class="{red: row.entity[col.field] > 30}"><div class="ngCellText">{{row.entity[col.field] | currency}}</div></div>' },
{ field: 'birthday', width: '120px', cellFilter: 'date', resizable: false },
{ field: 'paid', width: '*', cellFilter: 'checkmark' }]
};
});
height: 24px; margin-top: 1px; padding: 0 4px;\" ng-model=\"pagingOptions.currentPage\"/> type=\"number\"改成 type=\"text\"就好了(如图二),可是不知道为什么会这样,希望有人能解答一下
注明一下,我是先将一个子模块myApp.ctrl.dataGrid加入到模块myApp中,然后再将ngGrid到加入到myApp.ctrl.dataGrid中的,源代码如下
[html]
view plaincopyprint?
<style type="text/css">
.gridStyle {
border: 1px solid rgb(212,212,212);
width: 800px;
height: 300px;
}
.green {
background-color: green;
color: white;
}
</style>
<div class="row" data-ng-controller="myController">
<div class="gridStyle" data-ng-grid="gridOptions">
</div>
</div>
[javascript]
view plaincopyprint?
angular
.module('myApp', [
'myApp.ctrl.dataGrid'
])
angular
.module('myApp.ctrl.dataGrid', ['ngGrid'])
.controller('myController', function ($scope) {
var self = this;
//基本数据属性
$scope.mySelections = [];
//Grid数据
$scope.myData = [];
//Grid 筛选
$scope.filterOptions = {
filterText: '',
useExternalFilter: false
};
//总共条目
$scope.totalServerItems = 0;
//设置相关页面数据
$scope.pagingOptions = {
pageSizes: [250, 500, 1000],//page 行数可选值
pageSize: 250, //每页行数
currentPage: 1, //当前显示页数
};
//操作方法设置
self.getPagedDataAsync = function (pageSize, page, searchText) {
setTimeout(function () {
var data;
if (searchText) {
var ft = searchText.toLowerCase();
data = largeLoad().filter(function (item) {
return JSON.stringify(item).toLowerCase().indexOf(ft);
});
}
else {
data = largeLoad();
}
var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
$scope.myData = pagedData;
$scope.totalServerItems = data.length;
if (!$scope.$$phase) {
$scope.$apply();
}
}, 100);
};
$scope.$watch('pagingOptions', function () {
self.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
},true);
$scope.$watch('filterOptions', function () {
self.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
},true);
self.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage);
$scope.gridOptions = {
data: 'myData',
selectedItems: $scope.mySelections,
showSelectionCheckbox: true,
multiSelect: true,
showGroupPanel: false,
showColumnMenu: true,
enableCellSelection: true,
enableCellEditOnFocus: true,
enablePaging: true,
showFooter: true,
totalServerItems: $scope.totalServerItems,
filterOptions: $scope.filterOptions,
pagingOptions: $scope.pagingOptions,
i18n:'zh-cn',
columnDefs: [
{ field: 'name', displayName: 'Very Long Name Title', sortable: false },
{ field: 'allowance', width: 120, aggLabelFilter: 'currency', cellTemplate: '<div ng-class="{red: row.entity[col.field] > 30}"><div class="ngCellText">{{row.entity[col.field] | currency}}</div></div>' },
{ field: 'birthday', width: '120px', cellFilter: 'date', resizable: false },
{ field: 'paid', width: '*', cellFilter: 'checkmark' }]
};
});
相关文章推荐
- Angularjs Ng_repeat中实现复选框选中并显示不同的样式
- angularjs ng-grid 表格使用
- Confirmation on Leaving the Current Page in an Angular.js App
- Angularjs ng-grid 升级到 UI-Grid
- angularjs ui-grid cellTemplate checkbox ng-checked
- Angular.js中用ng-repeat-start实现自定义显示
- angularjs ng-click传参控制ng-repeat元素显示与隐藏
- angularjs ng-if表达式为true的情况下标签仍不显示内容
- angularjs ng-grid 如何能自由调整某列宽度
- Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
- AngularJs ng-options 无法设置value的问题
- angularjs select标签使用ng-repeat标签之后,ng-model无法更新问题解决
- angularjs ng-grid 如何将分页信息等设置成中文
- Angular.js中用ng-repeat-start实现自定义显示
- Angular运行于nw.js时ng-src无法显示的问题解决
- angularjs ui-grid 导出表格数据csvExport
- angularjs ng-show和css display的区别
- IIS7中JS、CSS、Image无法显示和加载解决方案
- Code Organization in Large AngularJS and JavaScript Applications(waititng for translate)
- 当Swiper轮播图效果遇上angular.js的ng-repeat