加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何表示AngularJS中哪些输入字段已更改

发布时间:2020-12-17 08:28:33 所属栏目:安全 来源:网络整理
导读:我正在编辑表单(user.html)将数据PUT到API,但我想避免PUT所有的数据在窗体中。我想只更改项目。 我已经看到在使用形式时使用dirty和pristine,但这适用于形式的任何更改。我也看到使用ng-change,但我不想触发对一个元素的更改的操作,只是表示更改的元素应
我正在编辑表单(user.html)将数据PUT到API,但我想避免PUT所有的数据在窗体中。我想只更改项目。

我已经看到在使用形式时使用dirty和pristine,但这适用于形式的任何更改。我也看到使用ng-change,但我不想触发对一个元素的更改的操作,只是表示更改的元素应该包含在PUT中。

任何人发现一种方式只表示已更改的输入字段?

如果将输入放在具有name属性的表单中,然后为输入指定name属性,那么还可以访问输入的$ pristine属性。
<div ng-controller="MyController">
  <form name="myForm">
    <input type="text" name="first" ng-model="firstName">
    <input type="text" name="last" ng-model="lastName">
  </form>
</div>
app.controller('MyController',function($scope) {
  // Here you have access to the inputs' `$pristine` property
  console.log($scope.myForm.first.$pristine);
  console.log($scope.myForm.last.$pristine);
});

您可以使用$ scope.myForm。$ pristine查看是否有任何字段已更改,并在表单上的每个输入属性上使用$ pristine属性,以查看该输入是否已更改。你甚至可以迭代myForm对象(非输入字段对象的键前缀为$):

angular.forEach($scope.myForm,function(value,key) {
  if(key[0] == '$') return;
  console.log(key,value.$pristine)
});
// first,true
// last,false

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读