在自定义dijit中,我有一个按钮,data-dojo-attach-event
连接到名为_goNext
的方法。我需要为在Dijit控制器javascript文件中声明的节点设置动画,但似乎animateProperty
的范围正在捏造一些东西。
require([/* deps */], function(/*deps*/){
return declare(null, {
postCreate : function(){
this._animNode = query('.someNode')[0];
},
// non-essentials omitted
_goNext : function(){
fx.animateProperty({
node : this._animNode
properties : {
left : {
start : this._start,
end : this._end,
unit : 'px'
}
},
onEnd : function(){
this.updateCurrentScreen();
}
}).play();
}
}
})
...基本上就是我正在使用的东西。这样做,它什么都不做,因为它的范围与声明我的节点和值的范围不同。如果我手动设置值(硬编码)并为节点参数应用id来抓取,它可以正常工作,但这很愚蠢而不是我想要的。
我已经尝试将它包装在一个匿名包装器中,并将this
作为参数传递,但我正在使用style
和其他一些东西来获取TypeErrors。
我是否必须使用hitch或其他范围修改方法?或者有一种更简单的方法可以正确地准备这件事{。}}。
答案 0 :(得分:1)
您肯定需要将onEnd
处理程序与this
的当前值联系起来,否则当您尝试调用updateCurrentScreen
时会出现上下文问题