此组合键可让您编辑网格中的行。我已经创建了一个基于RowEditCtrl的新方法来插入新行,但是在验证时遇到了麻烦。
当我插入新行时,表单为“原始且有效”。在insert方法中,我需要调用$scope.$broadcast('schemaFormValidate')
来验证表单,而form.$valid
将为false。理想情况下,我想从保存按钮上的ng-show
调用此检查,这样直到表单确定后该按钮才出现。
问题是,我不了解或不知道如何通过此$scope
方法获取架构形式RowEditCtrl
,并且在用户键入任何内容之前无法使该形式无效。 / p>
function RowEditCtrl($modalInstance, PersonSchema, grid, row) {
var vm = this;
vm.schema = PersonSchema;
vm.entity = angular.copy(row.entity);
vm.form = [
'name',
'company',
'phone',
{
'key': 'address.city',
'title': 'City'
},
];
vm.save = save;
function save() {
// Copy row values over
row.entity = angular.extend(row.entity, vm.entity);
$modalInstance.close(row.entity);
}
}
答案 0 :(得分:0)
通过将$scope
传递到RowEditCtrl
的{{1}}控制器中,我可以访问$scope
中的editRow
。在这里查看我的原始朋克叉:http://next.plnkr.co/edit/NiwF12BLJQyD6Cku
以下是相关更改:
$modal.open
...
function editRow(grid, row) {
$modal.open({
templateUrl: 'edit-modal.html',
controller: ['$scope',
...
function RowEditCtrl($scope,
当我在模态的function save() {
console.log($scope.$broadcast('schemaFormValidate'));
函数中执行console.log
的{{1}}时,它似乎正在工作。或者,至少定义了$scope.$broadcast('schemaFormValidate')
并且$ broadcast可调用。抱歉,如果无法解决问题,我对save
并不熟悉。