Angularjs 是否在ng网格中的所有分页页上选择的行不存在?

Angularjs 是否在ng网格中的所有分页页上选择的行不存在?,angularjs,ng-grid,Angularjs,Ng Grid,我已经创建了一个可以选择行的网格,如果我转到网格上的下一页并选择其他行,我的行数会更新,但是当我再次访问我的第一页时,上一个选择消失了,但行数仍然存在,即使在访问不同的页面后,我如何使它们保持不变 var app = angular.module('myApp', ['ngGrid']); app.controller('MyCtrl', function($scope, $http) { $scope.filterOptions = { filterText: "",

我已经创建了一个可以选择行的网格,如果我转到网格上的下一页并选择其他行,我的行数会更新,但是当我再次访问我的第一页时,上一个选择消失了,但行数仍然存在,即使在访问不同的页面后,我如何使它们保持不变

var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function($scope, $http) {

    $scope.filterOptions = {
        filterText: "",
        useExternalFilter: true
    };

    $scope.totalServerItems = 0;
    $scope.pagingOptions = {
        pageSizes: [5, 10, 20],
        pageSize: 5,
        currentPage: 1
    };
    $scope.setPagingData = function(data, page, pageSize){
        var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
        $scope.myData = pagedData;
        $scope.totalServerItems = data.length;
        if (!$scope.$$phase) {
            $scope.$apply();
        }
    };
    $scope.getPagedDataAsync = function (pageSize, page, searchText) {
        setTimeout(function () {
            var data;
            if (searchText) {
                var ft = searchText.toLowerCase();
                $http.get('largeLoad.json').success(function (largeLoad) {
                    data = largeLoad.filter(function(item) {
                        return JSON.stringify(item).toLowerCase().indexOf(ft) != -1;
                    });
                    $scope.setPagingData(data,page,pageSize);
                });
            } else {
                $http.get('largeLoad.json').success(function (largeLoad) {
                    $scope.setPagingData(largeLoad,page,pageSize);
                });
            }
        }, 100);
    };

    $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage);

    $scope.$watch('pagingOptions', function (newVal, oldVal) {
        if (newVal !== oldVal && newVal.currentPage !== oldVal.currentPage) {
            $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
        }
    }, true);

    $scope.$watch('filterOptions', function (newVal, oldVal) {
        if (newVal !== oldVal) {
            $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
        }
    }, true);

    $scope.edit = function (row) {
        row.entity.edit = !row.entity.edit;
    };

    $scope.gridOptions = {
        data: 'myData',
        enablePaging: true,
        showFooter: true,
        primaryKey:"name",
        enableRowSelection: true,
        showGroupPanel: true,
        enableCellSelection: false,
        jqueryUIDraggable: true,
        //showSelectionCheckbox: true,
        selectedItems:$scope.output,
        totalServerItems:'totalServerItems',
        pagingOptions: $scope.pagingOptions,
        filterOptions: $scope.filterOptions,
        columnDefs: [{
            field: 'nm',
            displayName: 'Name',
            cellTemplate: '<div class="ngCellText"><div ng-show="!row.entity.edit">{{row.getProperty(col.field)}}</div>' +
            '<div ng-show="row.entity.edit" class="ngCellText"><input type="text" ng-model="row.entity.nm"/></div></div>'
        },
            {
            field: 'cty',
            displayName: 'city',
            cellTemplate: '<div class="ngCellText"><div ng-show="!row.entity.edit">{{row.getProperty(col.field)}}</div>' +
            '<div ng-show="row.entity.edit" class="ngCellText"><input type="text" ng-model="row.entity.cty"/></div></div>'
        },
            {
            field: 'hse',
            displayName: 'Address',
            cellTemplate: '<div class="ngCellText"><div ng-show="!row.entity.edit">{{row.getProperty(col.field)}}</div>' +
            '<div ng-show="row.entity.edit" class="ngCellText"><input type="text" ng-model="row.entity.hse"/></div></div>'
            },

            {
                field: 'yrs',
                displayName: 'PinCode',
                cellTemplate: '<div class="ngCellText"><div ng-show="!row.entity.edit">{{row.getProperty(col.field)}}</div>' +
                '<div ng-show="row.entity.edit" class="ngCellText"><input type="text" ng-model="row.entity.yrs"/></div></div>'
            },
         {
            displayName: 'Edit',
            cellTemplate: '<button id="editBtn" type="button" class="btn btn-primary" ng-click="edit(row)" >Modify</button> '

        },
            {
                displayName: 'Remove',
                cellTemplate: '<button id="removebtn" type="button" class="btn btn-primary" ng-click="removeRow($index)" >Remove</button> '
            }

    ]
    };

    $scope.removeRow = function() {
        var index = this.row.rowIndex;
        $scope.gridOptions.selectItem(index, false);
        $scope.myData.splice(index, 1);
    };

    $scope.addRow = function() {
        $scope.myData.unshift({nm: 'abc', cty: 0 , hse:'abcd' , yrs:2014});
    };

});
var-app=angular.module('myApp',['ngGrid']);
app.controller('MyCtrl',函数($scope,$http){
$scope.filterOptions={
筛选文本:“”,
useExternalFilter:true
};
$scope.totalServerItems=0;
$scope.pagingOptions={
页面大小:[5,10,20],
页面大小:5,
当前页:1
};
$scope.setPagingData=函数(数据、页面、页面大小){
var pagedData=data.slice((第1页)*页面大小,页面*页面大小);
$scope.myData=pagedData;
$scope.totalServerItems=data.length;
如果(!$scope.$$phase){
$scope.$apply();
}
};
$scope.getPagedDataAsync=函数(页面大小、页面、搜索文本){
setTimeout(函数(){
var数据;
如果(搜索文本){
var ft=searchText.toLowerCase();
$http.get('largeLoad.json').success(函数(largeLoad){
数据=大负荷过滤器(功能(项目){
返回JSON.stringify(item).toLowerCase().indexOf(ft)!=-1;
});
$scope.setPagingData(数据、页面、页面大小);
});
}否则{
$http.get('largeLoad.json').success(函数(largeLoad){
$scope.setPagingData(大负载、页面、页面大小);
});
}
}, 100);
};
$scope.getPagedDataAsync($scope.paginOptions.pageSize,$scope.paginOptions.currentPage);
$scope.$watch('pagingOptions',函数(newVal,oldVal){
如果(newVal!==oldVal&&newVal.currentPage!==oldVal.currentPage){
$scope.getPagedDataAsync($scope.paginOptions.pageSize,$scope.paginOptions.currentPage,$scope.filterOptions.filterText);
}
},对);
$scope.$watch('filterOptions',函数(newVal,oldVal){
if(newVal!==oldVal){
$scope.getPagedDataAsync($scope.paginOptions.pageSize,$scope.paginOptions.currentPage,$scope.filterOptions.filterText);
}
},对);
$scope.edit=函数(行){
row.entity.edit=!row.entity.edit;
};
$scope.gridOptions={
数据:“myData”,
enablePaging:true,
showFooter:是的,
primaryKey:“名称”,
enableRowSelection:true,
showGroupPanel:正确,
enableCellSelection:false,
JQUERYUIDRAGABLE:没错,
//showSelectionCheckbox:true,
selectedItems:$scope.output,
totalServerItems:'totalServerItems',
分页选项:$scope.pagingOptions,
filterOptions:$scope.filterOptions,
columnDefs:[{
字段:“nm”,
displayName:'名称',
cellTemplate:“{row.getProperty(col.field)}”+
''
},
{
字段:“cty”,
displayName:'城市',
cellTemplate:“{row.getProperty(col.field)}”+
''
},
{
字段:“hse”,
displayName:'地址',
cellTemplate:“{row.getProperty(col.field)}”+
''
},
{
字段:“yrs”,
displayName:'PinCode',
cellTemplate:“{row.getProperty(col.field)}”+
''
},
{
displayName:“编辑”,
cellTemplate:“修改”
},
{
displayName:“删除”,
cellTemplate:“删除”
}
]
};
$scope.removeow=函数(){
var index=this.row.rowIndex;
$scope.gridOptions.selectItem(index,false);
$scope.myData.splice(索引,1);
};
$scope.addRow=函数(){
$scope.myData.unshift({nm:'abc',cty:0,hse:'abcd',yrs:2014});
};
});

我发现我错了,这里是对代码的修改,现在所选的值在访问其他页面时也会被保留

var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function($scope, $http) {
    $scope.filterOptions = {
        filterText: "",
        useExternalFilter: true
    };
    $scope.pagingOptions = {
        pageSizes: [25, 50, 100],
        pageSize: 25,
        totalServerItems: 0,
        currentPage: 1
    };
    $scope.setPagingData = function(data, page, pageSize){
        var pagedData = data.slice((page - 1) * pageSize, page * pageSize);
        $scope.myData = pagedData;
        $scope.pagingOptions.totalServerItems = data.length;
        if (!$scope.$$phase) {
            $scope.$apply();
        }
    };
    $scope.getPagedDataAsync = function (pageSize, page, searchText) {
        setTimeout(function () {
            var data;
            if (searchText) {
                var ft = searchText.toLowerCase();
                $http.get('largeLoad.json').success(function (largeLoad) {
                    data = largeLoad.filter(function(item) {
                        return JSON.stringify(item).toLowerCase().indexOf(ft) != -1;
                    });
                    $scope.setPagingData(data,page,pageSize);
                });
            } else {
                $http.get('largeLoad.json').success(function (largeLoad) {
                    $scope.setPagingData(largeLoad,page,pageSize);
                });
            }
        }, 100);
    };

    $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage);

    $scope.$watch('pagingOptions', function () {
        console.log( "watch changed pagingOptions" );
        $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
    }, true);
    $scope.$watch('filterOptions', function () {
        $scope.getPagedDataAsync($scope.pagingOptions.pageSize, $scope.pagingOptions.currentPage, $scope.filterOptions.filterText);
    }, true);

    $scope.gridOptions = {
        data: 'myData',
        enablePaging: true,
        pagingOptions: $scope.pagingOptions,
        showFooter: true,
        filterOptions: $scope.filterOptions,
        columnDefs: [{
            field: 'nm',
            displayName: 'Name',
            cellTemplate: '<div class="ngCellText"><div ng-show="!row.entity.edit">{{row.getProperty(col.field)}}</div>' +
            '<div ng-show="row.entity.edit" class="ngCellText"><input type="text" ng-model="row.entity.nm"/></div></div>'
        },
            {
                field: 'cty',
                displayName: 'city',
                cellTemplate: '<div class="ngCellText"><div ng-show="!row.entity.edit">{{row.getProperty(col.field)}}</div>' +
                '<div ng-show="row.entity.edit" class="ngCellText"><input type="text" ng-model="row.entity.cty"/></div></div>'
            },
            {
                field: 'hse',
                displayName: 'Address',
                cellTemplate: '<div class="ngCellText"><div ng-show="!row.entity.edit">{{row.getProperty(col.field)}}</div>' +
                '<div ng-show="row.entity.edit" class="ngCellText"><input type="text" ng-model="row.entity.hse"/></div></div>'
            },

            {
                field: 'yrs',
                displayName: 'PinCode',
                cellTemplate: '<div class="ngCellText"><div ng-show="!row.entity.edit">{{row.getProperty(col.field)}}</div>' +
                '<div ng-show="row.entity.edit" class="ngCellText"><input type="text" ng-model="row.entity.yrs"/></div></div>'
            },
            {
                displayName: 'Edit',
                cellTemplate: '<button id="editBtn" type="button" class="btn btn-primary" ng-click="edit(row)" >Modify</button> '

            },
            {
                displayName: 'Remove',
                cellTemplate: '<button id="removebtn" type="button" class="btn btn-primary" ng-click="removeRow($index)" >Remove</button> '
            }

        ]
    };

    $scope.selectedrowsInfo = [];

    // Selection setting
    $scope.gridOptions.primaryKey = "yrs";
    $scope.gridOptions.enableRowSelection = true;
    $scope.gridOptions.showSelectionCheckbox = false;
    $scope.gridOptions.multiSelect = true;
    $scope.gridOptions.selectedItems = $scope.selectedrowsInfo;
    $scope.gridOptions.showColumnMenu = true;
    $scope.edit = function (row) {
        row.entity.edit = !row.entity.edit;
    };

    $scope.removeRow = function() {
        var index = this.row.rowIndex;
        $scope.gridOptions.selectItem(index, false);
        $scope.myData.splice(index, 1);
    };

    $scope.go = function($location) {
        $location.path('/form.html');
        //$window.location.href = '/form.html';
    };

});
var-app=angular.module('myApp',['ngGrid']);
app.controller('MyCtrl',函数($scope,$http){
$scope.filterOptions={
筛选文本:“”,
useExternalFilter:true
};
$scope.pagingOptions={
页面大小:[25,50,100],
页面大小:25,
totalServerItems:0,
当前页:1
};
$scope.setPagingData=函数(数据、页面、页面大小){
var pagedData=data.slice((第1页)*页面大小,页面*页面大小);
$scope.myData=pagedData;
$scope.pagingOptions.totalServerItems=data.length;
如果(!$scope.$$phase){
$scope.$apply();
}
};
$scope.getPagedDataAsync=函数(页面大小、页面、搜索文本){
setTimeout(函数(){
var数据;
如果(搜索文本){
var ft=searchText.toLowerCase();
$http.get('largeLoad.json').success(函数(largeLoad){
数据=大负荷过滤器(功能(项目){
返回JSON.stringify(item).toLowerCase().indexOf(ft)!=-1;
});
$scope.setPagingData(数据、页面、页面大小);
});
}否则{
$http.get('largeLoad.json').success(函数(largeLoad){
$scope.setPagingData(大负载、页面、页面大小);
});
}
}, 100);
};
$scope.getPagedDataAsync($scope.paginOptions.pageSize,$scope.paginOptions.currentPage);
$scope.$watch('pagingOptions',函数(){
log(“监视更改的分页选项”);
$scope.getPagedDataAsync($scope.paginOptions.pageSi