Javascript 子视图中的Backbone.JS自定义事件
为了简单起见,我有两种观点,一种是父母/孩子。子级正在使用触发器引发事件。我在父母的处理者身上看不到这一点。以下条款有效吗Javascript 子视图中的Backbone.JS自定义事件,javascript,backbone.js,Javascript,Backbone.js,为了简单起见,我有两种观点,一种是父母/孩子。子级正在使用触发器引发事件。我在父母的处理者身上看不到这一点。以下条款有效吗 var parent = Backbone.View.extend({ events: { "childevent": "run" }, run: function(e) { console.log(e); }, render: function() { /* render the child here */ } }); v
var parent = Backbone.View.extend({
events: { "childevent": "run" },
run: function(e) {
console.log(e);
},
render: function() { /* render the child here */ }
});
var child = Backbone.View.extend({
someAction: function() { this.trigger('childevent'); }
});
它不应该是
events:{“childevent”:“run”}
吗?在代码中,无法访问此处的实际匿名函数。找到了<代码>$(this.el).trigger('childevent')工作。主干将对视图节点的jQuery引用存储在this.$el
属性中,这样您就可以使用它节省一些性能,而不是通过$(this.el)
重新计算引用
显然很晚了,但对于任何遇到这种情况的人来说: 视图上的events属性用于从views el或$el元素中的组件自动绑定Html DOM事件,语法包括UI事件和选择器作为成对键: 事件:{“单击#某个按钮”,“单击处理程序”}
若要从其他模型或视图中侦听事件,请使用此选项。listenTo(target,…)我实际上有这个选项,但它仍然不起作用,我只是在这里输入了错误的选项。很好,你也可以试试这个。缓存的jQuery属性是$el,如果我遵循的策略是视图只能访问其负责的元素及其子元素,该怎么办?如何向家长发送事件?
// use "this.$el.trigger()" to refer to jQuery's object
this.$el.trigger('childevent');