$ setPristine不是一个函数

时间:2017-01-05 10:57:15

标签: angularjs angular-material

<form name="inputdata" ng-submit="saveStudentInfo(student)">
    <div layout="row">
        <md-input-container flex="50"> <label>First
            Name</label> <input required name="studentFName"
            ng-model="student.studentFName">
        <div ng-messages="inputdata.studentFName.$error">
            <div ng-message="required">This is required.</div>
        </div>
        </md-input-container>

        <md-input-container flex="50"> <label>Middle
            Name</label> <input name="studentMName" ng-model="student.studentMName">
        </md-input-container>
        <md-input-container flex="50"> <label>Last
            Name</label> <input required name="studentLName"
            ng-model="student.studentLName">
        <div ng-messages="inputdata.studentLName.$error">
            <div ng-message="required">This is required.</div>
        </div>
        </md-input-container>
    </div>
</form>

这是表单组件。

 $scope.inputdata.$setPristine();

如果我在控制器中编写此代码,则会显示

  

$ scope.inputdata。$ setPristine不是函数。

有什么建议吗?我该怎么办? Angular版本1.6.1

2 个答案:

答案 0 :(得分:3)

此方法将表单的http://127.0.0.1:8000/frontend/css/stylesheet.css 状态设置为true,将$pristine状态设置为$dirty,删除false类并添加ng-dirty类。此外,它将ng-pristine状态设置为false。

因此,它不适用于单个表单元素。请改为$submitted

答案 1 :(得分:3)

您无法在输入中使用$setPristine

应该在form上使用。