I've gathered that $setPristine is supposed to do this, but it isn't on my project. This is my form:
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")
And the js:
$scope.create_project = () ->
project = new projectFactory this.project
project.$save project, (form_data) ->
$scope.projects.push form_data
$scope.new_project.$setPristine()
There are no errors, and pristine is set to true, but the inputs value remains.