我的团队一直在尝试以下方法:
$scope.addTest = function () {
var TestRow = {
"name": "xx",
"description": "xx",
"subjectId": 15
};
$scope.gridOptions.selectAll()
var testRowLength = $scope.gridData.push(TestRow);
$scope.gridOptions.selectItem(testRowLength - 1, true);
}
但是最后一个 selectItem 没有正确执行选择。所以我们尝试了以下方法:
$scope.$apply(function () {
$scope.gridData.push(TestRow);
$scope.gridOptions.selectItem(testRowLength - 1, true);
});
现在我们收到一条错误消息:
Error: $apply already in progress
此问题已作为问题发布在 ng-grid 博客上,但它才刚刚发布,我们需要尽快帮助解决此问题。我希望有人可以就我们如何才能给我们建议
最佳答案
您选择的行过早,请使用 ngGridEventData
事件代替。我将新行推到网格的开头,因此滚动更容易一些:
$scope.add = function(){
var emptyContact = Utilities.newContact();
var e = $scope.$on('ngGridEventData', function() {
$scope.contactsGridOptions.selectItem(0, true);
window.scrollTo(0,0);
e();
});
$scope.contacts.unshift(emptyContact);
};
更多关于滚动:How do I scroll an ngGrid to show the current selection?
相关 ng-grid 问题:https://github.com/angular-ui/ng-grid/issues/354
关于angularjs - 我们如何向 ng-grid 添加一行,然后选择该行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16143566/