2014-01-24 2 views
11

Возможно ли, когда пользователь добавит новую строку и нажав кнопку отмены (без каких-либо данных), строка будет удалена. Иначе как я могу изменить отменить код кнопки, потому что это один использовать xeditable по умолчанию код angularJS. (Или, может быть, как я могу вызвать функцию удаления, если строка пуста?)Настроить кнопку отмены кода X-editable (AngularJS)

Это EXAMPLE.

HTML для кнопки отмены:

 <button type="button" ng-disabled="rowform.$waiting" ng-click="rowform.$cancel()" class="btn btn-default"> 
     cancel 
     </button> 

ответ

13

Вы можете назвать свою собственную функцию. Для достижения этой цели необходимо изменить 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(); 
} 

Теперь вы можете сделать свой собственный материал и назвать форму $ отменить, если вы сделали.

3

В качестве альтернативы, если вы посмотрите на xeditable.js вы увидите, что $ отменить() внутренний вызов $ 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> 
Смежные вопросы