Javascript 在回调时以编程方式确定Backbone.js?
我试图确定Backbone.js model.on事件绑定到什么函数。例如,考虑到我的观点:Javascript 在回调时以编程方式确定Backbone.js?,javascript,backbone.js,Javascript,Backbone.js,我试图确定Backbone.js model.on事件绑定到什么函数。例如,考虑到我的观点: this.model.on('change', this.render, this); 我希望能够以编程方式确定,当模型发生更改时,将调用render函数 我查看了Backbone.js源代码,发现绑定存储在.\u回调中。在.\u回调中,我可以确定模型绑定到的事件。从上面的示例中,我可以确定模型具有变更事件绑定。但是,是否可以确定模型已绑定到视图的渲染功能 对于那些好奇的人,我正在尝试扩展视图的渲染功
this.model.on('change', this.render, this);
我希望能够以编程方式确定,当模型发生更改时,将调用render函数
我查看了Backbone.js源代码,发现绑定存储在.\u回调中。在.\u回调中,我可以确定模型绑定到的事件。从上面的示例中,我可以确定模型具有变更事件绑定。但是,是否可以确定模型已绑定到视图的渲染功能
对于那些好奇的人,我正在尝试扩展视图的渲染功能,我目前正在使用该功能。但是,当我扩展/重新分配render函数时,它会破坏模型的事件绑定
谢谢 有几种方法可以做到这一点。您的绑定应该可以工作,但您必须手动禁用视图的正常绑定并添加自己的绑定:
function renderMore() {
//do your pre-render code
view.render()
//do your post-render code
}
model.off('change', view.render);
model.on('change', renderMore);
然而,这是一个相当可怕的代码封装不良的气味。您是否考虑过对视图进行子类化,并在子类中的正确时间调用父类的render
方法
我面临这样一种情况:我希望能够将对话框呈现为一个纯窗口,没有额外的外观元素,以及一个带有标题栏、关闭按钮等的jquery模式对话框。我让父类负责呈现基本内容,然后我可以添加mixin来处理jquery与vanilla的变化