angularjs - setPristine 和 setUntouched 不起作用

标签 angularjs angular-material

我使用的是 Angular js 1.6

<div flex="100" flex-gt-sm="50">
        <md-input-container class="md-block"> <label>Conduct
            Code</label> <md-select name="ConductCode" ng-model="conductcode"
            style="min-width: 200px;" required> <md-option 
            ng-repeat="val in olCentreFromOtherConduct.conduct" ng-value="val.acadamiccalanderid" ng-bind="val.condcutcode"></md-option>
        </md-select>
        <div ng-messages="CentreFromOtherConductForm.ConductCode.$error">
            <div ng-message="required">Please Select Conduct Code</div>
        </div>
        </md-input-container>
</div>

当我重置值时

$scope.Reset = function () {
        $scope.conductcode = 0;
}

那么它的状态应该是untouch!!我尝试了以下不同的方法,但没有任何效果

//          $scope.CentreFromOtherConductForm.ConductCode.$touched = true;
//          $scope.CentreFromOtherConductForm.ConductCode.$valid = true;
//          $scope.CentreFromOtherConductForm.ConductCode.$invalid = false;
//          $scope.CentreFromOtherConductForm.ConductCode.$setUntouched();

或者

angular.forEach($scope.CentreFromOtherConductForm, function (input) {
            if (input && input.hasOwnProperty('$viewValue')) {
              input.$setPristine();
              input.$setUntouched();
            }
});

任何更新!!!

最佳答案

答案是调用表单上的方法,而不是输入上的方法:

$scope.CentreFromOtherConductForm.$setPristine();
$scope.CentreFromOtherConductForm.$setUntouched();

关于angularjs - setPristine 和 setUntouched 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45979484/

相关文章:

javascript - 动态使用 Angular6 Mat-Table

javascript - 如何使用 ngflow Angular JS 进行单次和多次上传

angularjs - 将对象传递给指令而不查看它们

angular - Material datePicker( Angular )中的多个日期选择

angular - 如何使用 Jasmine 测试 MatSort

angular - 无法绑定(bind)到 'matRowDefColumns',因为它不是 'mat-row' 的已知属性

css - angularjs 已加载,但未调用

angularjs - Angular2 将大型应用程序组织成较小的应用程序

javascript - 如何结合 Tornado 身份验证和 AngularJS?

angular - <mat-select> 中没有足够的空间。如何添加多行 <mat-option>?