清除Angular中表单提交的输入字段?

Jor*_*ren 10 angularjs

我已经收集了$ setPristine应该这样做,但它不在我的项目中.这是我的表格:

form(name="new_project", ng-submit="create_project()")
    div.create_wrapper
        input#project_name(required, ng-model="project.name", type="text")
        select#project_language(required, ng-init="project.language='PHP'", ng-model="project.language", ng-options="language for language in languages")
        input.button.tiny.radius(type="submit", value="Create")
Run Code Online (Sandbox Code Playgroud)

和js:

$scope.create_project = () ->
    project = new projectFactory this.project
    project.$save project, (form_data) ->
        $scope.projects.push form_data
        $scope.new_project.$setPristine()
Run Code Online (Sandbox Code Playgroud)

没有错误,pristine设置为true,但输入值仍然存在.

Jor*_*ren 19

要离开这里,因为其他问题的命名不足以找到解决这个问题的方法.

您必须手动清除表单元素的值.

例如,如果您有:

input#project_name(ng-model="project.name", type="text")
Run Code Online (Sandbox Code Playgroud)

要清空它你可以做:

$scope.project = null
Run Code Online (Sandbox Code Playgroud)

在你的控制器中.