AngularJS点击

时间:2015-07-28 10:53:42

标签: angularjs

您好,我有一个表格,其中包含一些输入,如电子邮件,标题,颜色......

我有2个按钮" Save"和"撤消更改"。

如果更改了某些内容,我需要始终禁用此按钮。 例如,我开始更改电子邮件,然后我考虑了。虽然我应该启用新的电子邮件按钮,但是在点击其中一个后,应该再次禁用它们。

<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>

如何在点击其中一个按钮后再次禁用它们?

2 个答案:

答案 0 :(得分:1)

只需创建一个标志变量,在提交后设置为true,在更改输入后设置为false,然后执行:

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

答案 1 :(得分:1)

调用$scope.form.$setPristine()取消所有脏标志:

function TodoCtrl($scope) {

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

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

示例:http://jsfiddle.net/ej5et0f5/1/