【问题标题】:Make $dirty manually false for ng-form为 ng-form 手动设置 $dirty 为 false
【发布时间】:2014-05-21 11:17:53
【问题描述】:

我有一个像这样的 ng-form:-

<div class="col-sm-4" ng-form="basicinformationform" data-ng-init="getData('basicinformation')">
      <button class="btn-small" ng-click="updateData('basicinformation')" ng-show="basicinformationform.$dirty">Update</button>
      <div>
            <input type="text" class="form-control" id="basicfirstname" ng-model="data.basicinformation[0].firstname"
                    required />
            ...............
      </div>
</div>

代码:-

 $scope.updateData = function (category) {
            switch (category) {
                case 'basicinformation':
                    $scope.categorynewdata = $scope.data.basicinformation[0];
                    break;
            Users.updateData().save(query).$promise.then(function (data) {
                    alert('Data updated successfully..!');            
        });

当我更改表单中的一些数据时,会出现update btn 并且当用户单击按钮时,数据会被保存。我想在单击此 btn 时隐藏它,并且当用户更改输入字段时应该再次出现 btn。

我成功地用 jquery 隐藏了它。但是当它隐藏时,它就不会再回来了。

【问题讨论】:

    标签: javascript angularjs


    【解决方案1】:

    Angular 支持 $setPristine() 重置表单:

    $scope.form.$setPristine(); 
    

    【讨论】:

    • 。然后在你的 updateData() 函数中,成功更新数据后,调用 myForm.$setPristine() 重置 $dirty 标志。
    • 抱歉,应该是 。仅当表单尚未编辑/修改时才禁用按钮。
    • 这对我来说是这样的......$scope.basicinformationform.$setPristine();.....谢谢......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 1970-01-01
    • 2020-10-16
    • 1970-01-01
    • 2020-01-17
    • 2020-10-14
    • 1970-01-01
    相关资源
    最近更新 更多