【问题标题】:Is dojo/on expected to be used when capturing events for DataGrid, with Dojo 1.7 and the AMD loader?使用 Dojo 1.7 和 AMD 加载程序为 DataGrid 捕获事件时,是否应该使用 dojo/on?
【发布时间】:2012-01-31 20:42:33
【问题描述】:

我正在转换 Dojo 1.6.1 DataGrid 示例以使用 Dojo 1.7 中的 AMD 加载程序,并尝试以“1.7 方式”执行操作。

目前,我有 dojo.connect(grid, "onApplyEdit", applyEdit);,但我想将其转换为使用 dojo/on。

我认为简单转换为 on(grid, "onApplyEdit", applyEdit); 可能会奏效,但它不会。

我注意到一些 on() 示例,事件名称是常规的 dom 事件,例如 click。

网格的事件名称是否已更改,或者 dojo/on 还没有准备好处理非 DOM 事件,或者 DataGrid 尚未更新以发出 on() 事件?

【问题讨论】:

    标签: dojo dojox.grid.datagrid


    【解决方案1】:

    dojo.on 与 DOM 和浏览器相关的事件一起使用。非 DOM 和非浏览器事件是简单的方法调用。您可以使用 AOP 连接到它们。更多详情见dojo/aspect.jshttp://livedocs.dojotoolkit.org/dojo/aspect

    【讨论】:

    • 在上面的例子中,我会使用 aspect.after(grid, "doApplyEdit", applyEdit),因为那是出现在网格上的“do”方法吗?
    • 是的,为什么不呢。因为伪事件通常没有主体,所以你可以使用任何你喜欢的 AOP 方法。如果你想要 FIFO 方式的链处理程序,就像 dojo.connect 那样,“之后”就是你的票。
    【解决方案2】:

    嗯,我是这样工作的:

    var signal = dojo.on( grid4, 'ApplyCellEdit', function(inValue, inRowNdx, inStoreNdx){..});
    

    从事件名称“onApplyCellEdit”中省略“on”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      • 2012-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多