如何 $setdirty 到单个输入
How to $setdirty to a single input
我有个小问题。我想设置为脏单个输入,我的意思是,因为当我自动给出一个值时,它会保留在 pristine
class 中,不会更改,也不会保存新值。
如果我编辑它,它会起作用并更改 class。我想取消那个 pristine
class。
如果有人知道请告诉我。
<form class="form-horizontal" ng-repeat="studiant in studiants" name="form" id="form">
<input type="hidden" name="id" value="{{studiant.studiant_id}}" class="form-control" disabled>
<div class="form-group">
<label for="school" class="col-md-2 control-label">School</label>
<div class="col-md-1">
<input type="text" id="school" name="school" class="form-control" ng-init="studiant.school=studiant.studiant_school" ng-model="studiant.school">
</div>
</div>
<div class="form-group">
<label for="name" class="col-md-2 control-label">Student's Name</label>
<div class="col-md-10">
<input type="text" id="name" name="name" class="form-control" ng-init="studiant.name=studiant.studiant_name" ng-model="studiant.name">
</div>
</div>
</form>
和脚本:
document.getElementbyId('name').value = "anything";
或者,如果我做错了,我必须将 value
更改为 ng-model
之类的,请帮助我。
这应该可以完成工作
angular.element(document.querySelector('form')).scope().formname.fieldname.$setDirty()
http://plnkr.co/edit/bVoljJqiK3CLB2xqZ6Zm?p=preview
你可以在那里看到一个工作示例。
确保为表单和输入设置了名称属性。
HTML 示例:
<button id="dirty-button" ng-click="addText(); myForm.myText.$setDirty()">Make Dirty</button>
<hr>
<form name="myForm">
<input name="myText" id="myTextInput" type="text" ng-model="myText" required>
</form>
<br/>
<span ng-show="myForm.myText.$dirty">it's dirty now</span>
一个简单的函数:
$scope.addText = function() {
$scope.myText = "now I'm dirty";
}
$scope.$on('$viewContentLoaded'){
$scope.form.fieldName.$dirty = true;
}
当您的视图加载后,angular 会调用 viewContentLoaded 事件。之后,您可以将字段设置为脏。而且如果你想调用一些方法,应该在内容加载后执行,而不是你应该在这个 $scope.$on('$viewContentLoaded'){..}
中调用那个方法
我有个小问题。我想设置为脏单个输入,我的意思是,因为当我自动给出一个值时,它会保留在 pristine
class 中,不会更改,也不会保存新值。
如果我编辑它,它会起作用并更改 class。我想取消那个 pristine
class。
如果有人知道请告诉我。
<form class="form-horizontal" ng-repeat="studiant in studiants" name="form" id="form">
<input type="hidden" name="id" value="{{studiant.studiant_id}}" class="form-control" disabled>
<div class="form-group">
<label for="school" class="col-md-2 control-label">School</label>
<div class="col-md-1">
<input type="text" id="school" name="school" class="form-control" ng-init="studiant.school=studiant.studiant_school" ng-model="studiant.school">
</div>
</div>
<div class="form-group">
<label for="name" class="col-md-2 control-label">Student's Name</label>
<div class="col-md-10">
<input type="text" id="name" name="name" class="form-control" ng-init="studiant.name=studiant.studiant_name" ng-model="studiant.name">
</div>
</div>
</form>
和脚本:
document.getElementbyId('name').value = "anything";
或者,如果我做错了,我必须将 value
更改为 ng-model
之类的,请帮助我。
这应该可以完成工作
angular.element(document.querySelector('form')).scope().formname.fieldname.$setDirty()
http://plnkr.co/edit/bVoljJqiK3CLB2xqZ6Zm?p=preview
你可以在那里看到一个工作示例。
确保为表单和输入设置了名称属性。
HTML 示例:
<button id="dirty-button" ng-click="addText(); myForm.myText.$setDirty()">Make Dirty</button>
<hr>
<form name="myForm">
<input name="myText" id="myTextInput" type="text" ng-model="myText" required>
</form>
<br/>
<span ng-show="myForm.myText.$dirty">it's dirty now</span>
一个简单的函数:
$scope.addText = function() {
$scope.myText = "now I'm dirty";
}
$scope.$on('$viewContentLoaded'){
$scope.form.fieldName.$dirty = true;
}
当您的视图加载后,angular 会调用 viewContentLoaded 事件。之后,您可以将字段设置为脏。而且如果你想调用一些方法,应该在内容加载后执行,而不是你应该在这个 $scope.$on('$viewContentLoaded'){..}