我想让多个视图对用户所做的事情作出反应。所以我想,全球定制活动是实现我的目标的正确方法。如果有更好的东西,我很高兴其他想法。
根据the documentation,我应该可以将自定义事件添加到我的Ember.js应用程序中:
Mobile = Em.Application.create({
customEvents: {
"customevent": "customevent"
}
});
不幸的是,文档停在那里并没有告诉我如何触发事件并将其绑定到它。所以我自己尝试并创建了一个应该“倾听”它的视图:
Mobile.HeaderView = Em.View.extend({
templateName: "header",
customevent: function() {
return console.log("Custom event has been fired!");
}
});
最后,我在我的控制台中解雇了这个事件:
$.event.trigger("customevent")
不幸的是,没有任何事情发生。
有谁能告诉我我做错了什么?或者,如果有更好的方法来获得我想要的东西?
答案 0 :(得分:1)
我使用Em.Binding
解决了我的问题,就像Luke Melia在幻灯片中演示的那样:
http://www.lukemelia.com/devblog/archives/2012/08/23/architecting-ember-js-apps/
代码示例from another StackOverflow question:
App.FailController = Em.ObjectController.extend({
content: null,
my: null,
myBinding: "App.router.myController", // <-- works
});