在我的控制器中,我有这个代码淡出div:
popUpFadeOut: function(){
if(this.get('bid.popUpContainerOpacity') === 0){
this.set('bid.popUpContainerOpacity', 1);
this.set('bid.popUpContainerDisplay', 'block');
setTimeout(this.fading, 1000); //popup box fades away after 1 seconds
}
},
fading: function() {
this.set('bid.popUpContainerOpacity', 'bid.popUpContainerOpacity' - 0.1);
if (this.get('bid.popUpContainerOpacity') <= 0)
{
this.set('bid.popUpContainerOpacity', 0);
this.set('bid.popUpContainerDisplay', 'none');
}
else
{
requestAnimationFrame(this.fading);
}
},
在淡入淡出功能中,我收到此错误:
Uncaught TypeError: this.set is not a function(…)
虽然我不是'this'关键字的专家,但我的猜测是找不到该函数,因为在popUpFadeout中调用了fading,所以在fading中调用this.set会在popUpFadeOut中查找set方法,不存在。
我的问题是:如何在淡入淡出中访问控制器的set方法?
答案 0 :(得分:0)
在超时通话中,转到this.fading.bind(this)
。然后,您应该在调用set
this
绑定