我的团队一直在尝试以下方法:
$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博客上发布,但它刚刚发布,我们需要尽快提供帮助。我希望有人能就我们如何能够提供建议
答案 0 :(得分:7)
您过早选择该行,请改用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