2012-01-02 22 views
2

我正在转换Dojo 1.6.1 DataGrid示例以在Dojo 1.7中使用AMD加载器,并尝试以“1.7方式”执行操作。在使用Dojo 1.7和AMD加载程序捕获DataGrid的事件时,预计会使用dojo/on吗?

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

我认为一个简单的转换为on(grid, "onApplyEdit", applyEdit);可能工作,但事实并非如此。

我注意到一些on()的例子,事件名称是常规的dom事件,比如点击。

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

回答

3

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

+0

在上面的例子中,我是否会使用aspect.after(grid,“doApplyEdit”,applyEdit),因为这是网格上出现的“do”方法? – Reuben 2012-01-03 12:17:05

+1

是的,为什么不呢。由于伪事件通常没有身体,所以可以使用任何你喜欢的AOP方法。如果你想以FIFO的方式来处理链处理程序,比如'dojo.connect',“之后”是你的票。 – 2012-01-04 06:01:12

0

好吧,我得到它的工作是这样的:

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

离开了“关于”从事件名称“onApplyCellEdit”。

相关问题