2015-07-28 2 views
3

Привет У меня есть форма с некоторыми входами, как электронная почта, название, цвет ...AngularJS как отключить кнопку после нажмите

У меня есть 2 кнопки «Сохранить» и «Отменить изменения».

Мне нужно, чтобы эти кнопки всегда были отключены, если что-то было изменено. Например, я начал менять адрес электронной почты, а потом подумал. В то время как я набираю новые кнопки электронной почты, вы должны быть включены, но после нажатия на один из них они должны быть снова отключены.

<form name="form" ng-submit="change()" novalidate> 
    <input type="text" ng-model="title"/> 
    <input type="email" name="email" ng-model="email" placeholder="{{email}}" /> 
    <input type="color" ng-model="color"/> 

    <button type="submit" ng-disabled="!form.$dirty">SAVE</button> 
    <a ng-click="cancel()" ng-disabled="!form.$dirty">UNDO CHANGES</a> 
</form> 

Как я могу отключить их после щелчка на одной из кнопок?

ответ

1

вызова $scope.form.$setPristine() отменить все грязные флаги:

function TodoCtrl($scope) { 

    $scope.change = function() { 
     $scope.form.$setPristine(); 
    } 

    $scope.cancel = function() { 
     $scope.form.$setPristine(); 
    } 
} 

Пример: http://jsfiddle.net/ej5et0f5/1/

1

Просто создайте переменный флаг, который вы будете устанавливать, чтобы верно после подачи и ложных после изменения входов, а затем просто сделать:

<button type="submit" ng-disabled="flagVariable">