Плункер
Этот плункер позволяет редактировать строки в сетке.Я создал новый метод на основе RowEditCtrl для вставки новой строки, но у меня возникли проблемы с проверкой.
Когда я вставляю новую строку, форма «нетронутая и действительная».В методе вставки мне нужно вызвать $scope.$broadcast('schemaFormValidate')
, который проверит форму, а form.$valid
будет ложным.В идеале я хотел бы вызвать эту проверку с ng-show
на кнопке сохранения, чтобы кнопка не появлялась до тех пор, пока форма не будет в порядке.
Проблема в том, что я не понимаю или не знаю, как получитьсхема-форма $scope
в этом методе RowEditCtrl
и не может сделать форму недействительной до того, как пользователь что-либо напечатал.
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);
}
}