gpt4 book ai didi

javascript - EmberJS 无法读取未定义的属性 'on'

转载 作者:行者123 更新时间:2023-12-03 05:22:45 25 4
gpt4 key购买 nike

我通过这个问题看到了很多主题,但找不到合适的主题。我正在尝试创建刽子手游戏,这是我的字母代码组件。我看不到我的问题..

import Ember from 'ember';

export default Ember.Component.extend({

game: null,
letter: null,

isMissed: false,
isGuessed: false,

init() {
this._super.apply(this, arguments);
var game = this.get('game');

game.on('didGuessLetter', (l) => {
if (l === this.get('letter')) {
this.set('isGuessed', true);
}
});
game.on('didMissLetter', (l) => {
if (l === this.get('letter')) {
this.set('isMissed', true);
}
});
game.on('didReset', this, this.reset);

},

reset() {
this.set('isMissed', false);
this.set('isGuessed', false);
},

click() {
if (!(this.get('isMissed') || this.get('isGuessed'))) {
this.get('game').playLetter(this.get('letter'));
}
}

});

我收到错误: error in console

我找不到不好的地方..第二次编辑:

在我的主要组件刽子手游戏中,我有如果我的主要组件中有游戏对象,这应该起作用吗?

export default Ember.Component.extend({
newWord: '',
game: Ember.inject.service(),
letters: Ember.computed(function(){
return 'abcdefghijklmnopqrstuvwxyz'.split('');
}),

actions: {
playWord() {
var word = this.get('newWord');
this.get('game').playWord(word);
this.set('wordLetters', word.split(''));
this.set('newWord', '');
}
}
});

最佳答案

您将 game 定义为 null,并且您正在尝试从 game 读取属性“on”。这就是您收到此错误的原因。

编辑:我不确定您是否尝试执行绞刑程序,但我可以展示使用 on 方法的示例,并避免 Uncaught Error 。

import Ember from 'ember';
const Game = Ember.Object.extend(Ember.Evented, {
didGuessLetter: function() {
//did guess letter logic
this.trigger('didGuessLetter');
}
});

export default Ember.Component.extend({
game: Game.create(),
init() {
this._super(...arguments);
var game = this.get('game');
game.on('didGuessLetter', (l) => {
if (l === this.get('letter')) {
this.set('isGuessed', true);
}
});
}
});

关于javascript - EmberJS 无法读取未定义的属性 'on',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41306807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com