我正在尝试创建一个事件总线,以便能够在我的应用程序中触发一些ui事件。我按照这里的说明操作:http://emberigniter.com/communication-between-distant-components/
我将我的事件总线作为服务加载到名为ui的组件属性中但由于某种原因我收到此错误:TypeError: this.get(...) is undefined
,这很奇怪,因为它应该是,对吧?如果我在init或稍后的didInsertElement中运行代码并不重要,同样的错误。我该怎么办?
// services/ui.js
import Ember from 'ember';
export default Ember.Service.extend(Ember.Evented);
//components/side-menu.js
import Ember from 'ember';
export default Ember.Component.extend(Ember.Evented, {
ui: Ember.inject.service(),
init() {
this._super(...arguments);
this.get('ui').on('side-menu:toggle', this.actions, 'toggle');
},
actions: {
toggle: function() {
this.$().sidebar('toggle');
}
}
});
答案 0 :(得分:1)
我明白了。这是因为我绑定div
并且在动作属性上没有定义get,我猜。当我改为创建一个名为toggle并绑定$(".booking_hotel").click(function(){
var id = this.id;
$.ajax({
type: "POST",
url: base_url + 'hotel_booking/hotel/hotel_booking',
data: id
}).done(function(response){
$('#my_div').html(response);
});
});
的方法时,它起作用了。谢谢你的帮助!