javascript - 捕获子元素的变化事件

标签 javascript angularjs

我对 AngularJS 相当陌生,可以使用一些帮助来解决以下问题:我有一个包含很多列和输入元素的表。每当用户更改输入元素的值时,我希望“编辑”行集。我通过向每个输入元素添加 ng-change 指令来实现这一点:

<table>
   <tr data-ng-repeat="item in vm.Model.data>
      <td>
         <input type="text" ng-model="item.Title" ng-change="item.changed=true" />
      </td>
      .
      .
   </tr>
</table>

这个解决方案的问题是我有很多列,并且我必须为每个“输入”元素编写 ng-change 指令。有没有办法捕获“tr”元素级别上任何输入元素的更改事件?

最佳答案

您可以编写自己的指令来监听 onchange 事件冒泡(ngChange 指令在这种情况下不起作用)。

.directive('onChange', function() {
    return {
        link: function(scope, element, attrs) {
            element.on('change input', function() {
                scope.$eval(attrs.onChange);
                scope.$digest();
            });
        }
    };
});

并使用它:

<tr data-ng-repeat="item in data" on-change="item.changed=true">

演示:http://plnkr.co/edit/lzIQ00l7aqXYlNCekWY8?p=preview

关于javascript - 捕获子元素的变化事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25018152/

相关文章:

javascript - sql.literal 不是 arangoDB Foxx 中的函数

javascript - 如何使输入字段可拖动

javascript - 按单词进行过滤而不隐藏它们

javascript - 重新编译 AngularJS 嵌套指令

javascript - jsPDF 未在 Edge 浏览器上渲染 highcharts 图像

javascript - 如何在 Ruby on Rails 中合并列中的重复项?

javascript 只识别我的 if 语句

javascript - 选择下一个 div jquery

javascript - AngularJS 和 Node.js Express - $http.get 成功 block 未被调用

javascript - 如何在复杂的资源加载序列中正确链接 promise ?