Настройте кнопку отмены кода 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>