AngularJS获取单个字段的原始状态
AngularJS get $pristine state of an individual field
我在Angular中有一个包含行字段的表单,其中每行都是一个ng-repeat
块:
<form name="myForm><table>
<tr class="item-row" ng-repeat="item in items">
<td>
<input type="text" ng-model="item.width" ng-change="processItem(item)">
</td>
<td>
<input type="text" ng-model="item.relatedWidth" ng-change="processItem(item)">
</td>
</tr>
</table></form>
在我的$scope.processItem(item)
方法中,我希望item.relatedWidth
与item.width
的值相匹配,只有当 item.relatedWidth
的字段是原始的-即它没有被用户编辑。如果用户编辑了这个字段,那么它应该被解耦。
在伪代码我想这样做:
$scope.processItem = function(item){
if(the field for item.relatedWidth is pristine){
item.relatedWidth = item.width;
}
}
我可以看到该字段有ng-pristine
或ng-dirty
类,但我不知道如何获取这个值的Angular的方式。
我怎么能读这个$质朴/$脏状态的字段,因为它是动态呈现在一行的ng-repeat
?
在字段集中包装您的字段,
<form name="testForm">
<fieldset>
<input name="testField" type="text" />
</fieldset>
</form>
现在你可以这样访问你的表单,
scope.testForm美元for(var field in $scope.testForm)
{
if($scope.testForm[field].$pristine)
{
// Do something
}
}
现在,无论在字段集中使用ng-repeat添加了多少字段,它仍然会在$作用域中。
您需要将ng-form
指令添加到每行,将name
属性添加到输入,并将relatedWidth输入的原始状态传递给processItem
函数:
<form name="myForm">
<table>
<tr class="item-row" ng-repeat="item in items" ng-form="itemForm">
<td>
<input type="text" name="width" ng-model="item.width"
ng-change="processItem(item, itemForm.related_width.$pristine)">
</td>
<td>
<input type="text" name="related_width" ng-model="item.relatedWidth"
ng-change="processItem(item)">
</td>
</tr>
</table>
</form>
控制器:
$scope.processItem = function(item, relatedPristine){
if(relatedPristine === true){
item.relatedWidth = item.width;
}
};
相关文章:
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 使用jQuery从原始页面内容创建iframe
- 从客户端获取修改后的对象,并将其与服务器上的原始对象组合
- 我如何制作一个JS函数,它可以从相似的原始颜色双向更改为某个颜色
- 查找仅适用于原始图像的图像放大算法的名称
- 如何在使用Javascript浏览网站时处理原始窗口
- markrwithlabel.js(第三方)原始文件链接断开
- 在Javascript中重新分配对象变量时,原始对象会发生什么
- 如何在玩TimelineMax(GSAP)后重置原始位置
- 在编译阶段后创建新的DOM树,或者继续使用原始修改的DOM
- 原始javascript将json对象中的项目打印到列表中的屏幕上
- 我们可以用参数对象集合而不是原始数据来调用JavaScript collection.reduce()方法吗
- django没有访问控制允许删除原始标头
- JQuery:使用clone()生成的元素不采用原始的事件属性
- HTML5 Canvas访问控制允许原始错误
- 如何使用JavaScript粘贴原始二进制文件而不出现“无效字符”错误
- 如何使用JavaScriptLib将字符串(WYSIWYG)转换为原始html
- 从ajax请求中获取原始文本
- 获取原始HTML并将其重新呈现为HTML
- 我如何获得“”的原始位置;ui“可拖动”;在“;drop”;事件