Javascript Ember 2,使用Ember.run.debounce调用路由中的函数
我在一条叫做“游戏”的路线上 在一个动作中,我为一个函数调用Ember.run.debounce,但在该函数中,我不能调用其他函数 app/routes/game.js:Javascript Ember 2,使用Ember.run.debounce调用路由中的函数,javascript,ember.js,ember-data,ember-cli,debounce,Javascript,Ember.js,Ember Data,Ember Cli,Debounce,我在一条叫做“游戏”的路线上 在一个动作中,我为一个函数调用Ember.run.debounce,但在该函数中,我不能调用其他函数 app/routes/game.js: import Ember from 'ember'; export default Ember.Route.extend({ model() { ... }, saveGame: function () { this.save().then(() => { this.updat
import Ember from 'ember';
export default Ember.Route.extend({
model() {
...
},
saveGame: function () {
this.save().then(() => {
this.updateOtherGames(); //<------ ERROR ERROR ERROR ERROR
})
},
updateOtherGames(game) {
},
actions: {
playGame(game) {
...
Ember.run.debounce(game, this.saveGame, 5000);
}
}
})
从“余烬”导入余烬;
导出默认的Ember.Route.extend({
模型(){
...
},
saveGame:function(){
这个。save()。然后(()=>{
this.updateOtherGames();//对debounce
的正确用法是:
Ember.run.debounce(this, this.saveGame, game, 5000);
这是
更正后,调用updateOtherGames
就可以了。你同意我的观点吗,关于这一点的文档有点混乱?我很快会尝试你的方法。target
的定义是要调用的方法的目标。在示例代码中,target
显示为context
。是的,有点混乱。实际上,e> target
表示谁将成为该函数上下文中的这个
。ember论坛上的一个家伙回答说:什么是正确的?你的还是这个?事实上,答案是一样的。该答案使用fat arrow函数调用并传递参数。我的答案使用debounce 3th参数…两者都可以。对于fat arrow,请看一看。这个答案可能有助于你理解站好一点。