Настройте кнопку отмены кода X-editable (AngularJS)
Возможно ли, когда пользователь добавит новую строку и нажав кнопку отмены (без каких-либо данных), строка будет удалена.
В противном случае, как я могу изменить код кнопки отмены, потому что в этом случае используется xeditable код angularJS по умолчанию. (Или, может быть, как я могу вызвать функцию удаления, если строка пуста?)
Это ПРИМЕР.
HTML для кнопки отмены:
<button type="button" ng-disabled="rowform.$waiting" ng-click="rowform.$cancel()" class="btn btn-default">
cancel
</button>
Ответы
Ответ 1
Вы можете назвать свою собственную функцию. Для этого вы должны изменить свой html следующим образом:
<button type="button" ng-disabled="rowform.$waiting"
ng-click="cancelAdvice(rowform, $index)"
class="btn btn-default">
cancel
</button>
Как вы видите, есть новая функция с формой и текущим индексом в качестве параметра. В контроллере вы должны определить эту функцию:
$scope.cancelAdvice = function(rowform, index){
console.log(rowform, index);
$scope.removeUser(index);
rowform.$cancel();
}
Теперь вы можете сделать свой собственный материал и называть форму $cancel, если вы закончили.
Ответ 2
Альтернативно, если вы посмотрите на xeditable.js, вы увидите, что $cancel() внутренне вызывает $oncancel(), который ищет атрибут oncancel в форме и вызывает функцию, предоставленную в нем. Поэтому вместо обработки формы в контроллере вы можете:
<form editable-form name="rowform" onbeforesave="saveRole($data, $index)" oncancel="removeIfNewRow($index)" ng-show="rowform.$visible" class="form-inline" shown="inserted == role">
<button type="submit" ng-disabled="rowform.$waiting" class="btn btn-primary">
save
</button>
<button type="button" ng-disabled="rowform.$waiting" ng-click="rowform.$cancel()" class="btn btn-default">
cancel
</button>
</form>