【问题标题】:How to do two-way binding in Ag-grid如何在 Ag-grid 中进行双向绑定
【发布时间】:2019-09-15 09:10:17
【问题描述】:

是否可以在纯 Javascript 中进行双向绑定?

我正在尝试在 ag-grid 中进行双向数据绑定,目前,我仅通过复选框显示数据,没有绑定:

columnDefs: [
   {headerName: "HeaderA",field: "fieldA", width: 150, editable: true,
    cellRenderer: params => {
        return `<input type='checkbox' ${params.value == 'Y' ? 'checked' : ''} />`
    }
   }
]

我想为此复选框进行双向数据绑定,以便通过选中该复选框,我也可以更改单元格值。

目前,我的网格性能与这个 plunker 非常相似:https://plnkr.co/edit/cV5wFLY4nnyQgVIcnGrF?p=preview

[你可以点击复选框,但是如果你双击单元格本身来查看单元格值,你会看到单元格值没有改变]

非常感谢任何帮助/建议!

【问题讨论】:

标签: javascript ag-grid


【解决方案1】:

编辑:问题不再引用 AngularJS,但这个答案仍然存在。

是的,这是可能的。 AngularJS 使用 vanilla Javascript 来实现双向绑定,这样我们就不必了。

但是,如果您使用的是 AngularJS 框架,那么您可能应该使用它已经提供的工具。

如果您想在不使用内置指令的情况下执行绑定,例如ng-modelng-bind{{}},考虑 $scope.$watch$scope.$watchCollection,这些 AngularJS 方法是内置 AngularJS 指令用来设置绑定的。

如果您使用组件,请使用$onChanges$doCheck

【讨论】:

  • $scope.$watch 之所以有效,是因为它在 Angular 的上下文中;没有浏览器原生 DOM API 知道这意味着什么。
  • 确实,但我不相信他真的需要在这里使用 vanilla Javascript,基于这个和他刚刚提出的另一个问题。我认为问题可能是:如何在内置指令之外实现绑定。
猜你喜欢
  • 2020-03-29
  • 1970-01-01
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
  • 2017-03-19
  • 2017-01-28
  • 1970-01-01
  • 2021-01-30
相关资源
最近更新 更多