0
在我的控制器我有這樣的代碼淡出一個div:this.set不是一個函數錯誤
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(…)
雖然我'm不是'this'關鍵字的專家,我的猜測是它找不到函數,因爲在popUpFadeout中調用了漸變,所以在漸變中調用this.set會在popUpFadeOut中尋找一個不存在的set方法。
我的問題是:如何訪問我的控制器在衰落內的設置方法?
嘗試'setTimeout(this.fading.bind(this),1000);'而不是 –
@DiogoSgrillo現在它說不能讀屬性'set'的undefined ...)在褪色。 – Jesper
我把'.bind(this)'放在另一個this.fading上,現在它可以工作。謝謝。 – Jesper