在应用程序中使用backbone,require.js和coffeescript。编程我的应用程序,发现我对视图有问题。对不起我的英语不好 ! =)主干在同一负载视图上触发许多事件
我的DOM是:
<div id="header"></div>
<div id="container"></div>
我的应用程序的一部分:
class AppRouter extends Backbone.Router
routes:
'': 'home'
'u/:user': 'user'
'events: 'events'
'messages': 'messages'
events:() ->
events = new EventsView
events.events()
messages:() ->
messages = new MessagesView
messages.messages()
class MessagesView extends Backbone.View
template: window.Handlebars.compile MessagesTpl
el : '#container'
events :
'click #test' : 'test'
test:() ->
console.log 'test'
messages:() ->
#fecth and bind render method on 'all'
class EventsView extends Backbone.View
template: window.Handlebars.compile EventsTpl
el : '#container'
events:() ->
#fetch and bind render method on 'all'
我有以下问题:
当我实例,并在路由器调用(“消息“)messagesView,我做了一个抓取,渲染工作正常。然后,当路由器导航到其他路线(“事件”)并调用eventsView时,同样的事情发生,它正确地呈现视图。
但是,如果再次导航路线“消息”事件“测试”被激发两次! ,每个实例一次!我发现如果我打电话给路由器$(“#容器”)。unbind()以前的实例MessagesView,这解决了这个问题,但我不知道我的解决方案,它真的很不错。
我的恐惧是DOM正在创造邪恶和高负载。你知道你可以用这个吗?
非常感谢大家!来自阿根廷的贪婪!
亚历
非常感谢!太好了! =) – AleVasta 2012-03-14 19:25:07