我有一个包含多个标签的复杂表单。一个选项卡上有ngGrid,我正在尝试应用分页。我的代码与我们在ng-grid示例页面上的代码非常相似,只是它有点简单:
$scope.getPagedDataAsync = function (pageSize, page, searchText) {
//setTimeout(function ()
{
var data;
if ($scope.currentAccount) {
//var acctNameHash = $scope.currentAccount.acctNameHash;
//var showFinalized = $scope.showFinalized;
var largeLoad = $scope.currentAccount.invoices;
if (searchText) {
var ft = searchText.toLowerCase();
//$http.get('/api/accounts/getAccountInvoices/' + acctNameHash + '/' + showFinalized)
// .success(function (largeLoad)
{
data = largeLoad.filter(function (item) {
return JSON.stringify(item).toLowerCase().indexOf(ft) != -1;
});
// Always use first page after applying a filter
$scope.setPagingData(data, 1, pageSize);
};
} else {
//$http.get('/api/accounts/getAccountInvoices/' + acctNameHash + '/' + showFinalized)
// .success(function (largeLoad)
{
$scope.setPagingData(largeLoad, page, pageSize);
}
//);
}
}
}
//, 100);
};
所以,我立即加载我的数据,当我不重新加载它们时。
我的加载方法有以下代码:
accountsService.getAccount(id, isNew, $scope.showFinalized).then(function (data) {
$scope.currentAccount = data;
$scope.isNew = isNew;
if (!isNew) {
$scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage);
}
我观察到 - 网格加载为空,但在页脚的总项目中显示正确的项目数。一旦我激活开发人员工具(或者如果他们已经打开就停用它们),网格就会开始正确显示数据并正确导航和过滤。所以,某种初始"刷新"缺少了,但我不知道该怎么做。
你看到了什么可能是错的,或者我怎么能这样做"刷新"在代码?
如果是初始设置页面,我在(!isNew)中注释掉了代码。它似乎有点帮助,但我似乎仍然有错误的行为。此外,网格本身在IE 11中看起来很糟糕。虽然在Chrome中我可以看到所有列,在IE中我只看到第3列的2 +部分,并且分页控件位于错误的位置。