在路由器中,我使用以下代码创建了一个搜索视图:(
仅if
创建一个new
尚不存在的视图,因为该视图永远不会改变。)
search: function () {
if (!this.searchView) {
this.searchView = new SearchView();
}
$('#content').html(this.searchView.el);
this.headerView.selectMenuItem('search-menu');
},
在视图中,我有一个事件哈希,将单击事件绑定到搜索按钮:
events: {
"click .search-query": "search"
},
这导致事件仅在第一次使用搜索按钮时触发。从搜索功能中
删除可以解决问题。if
然而,这似乎不是解决此问题的正确方法,因为不需要重新创建视图(重新初始化和重新渲染)。
尝试修复:
我尝试this.delegateEvents();
按如下方式添加到搜索视图的渲染功能中(同时将 留if
在搜索功能中),但它没有解决问题:
render:function () {
console.log('rendering search...');
$(this.el).html(this.template());
this.delegateEvents();
return this;
},
任何建议,将不胜感激。