在我尝试编写的这个coffeescript+backbone.marionette 应用程序中,当我尝试在我的内容区域中显示不同的视图时,我得到一个“NoTemplateError:找不到模板:'#second-template'。
这是基于David Sulc 的 Backbone Books 教程的两段代码。WelcomeApp 显示正常,但是当我单击然后调用 MyApp.SecondApp.display() 的菜单项时,我得到 NoTemplateError。
window.MyApp = MyApp = new Backbone.Marionette.Application()
MyApp.addRegions
menu: '#menu'
content: '#content'
class MyApp.MenuView extends Backbone.Marionette.View
el: '#menu'
events:
'click #get-second': 'showSecond'
showSecond: ->
MyApp.SecondApp.display()
MyApp.vent.on 'welcome:rendered', ->
menu = new MyApp.MenuView()
MyApp.menu.attachView(menu)
MyApp.WelcomeApp = do ->
WelcomeApp = {}
class WelcomeLayout extends Backbone.Marionette.Layout
template: '#content_welcome-template'
WelcomeApp.display = ->
WelcomeApp.layout = new WelcomeLayout()
WelcomeApp.layout.on 'show', ->
MyApp.vent.trigger 'welcome:rendered'
MyApp.content.show MyApp.WelcomeApp.layout
return WelcomeApp
MyApp.SecondApp = {}
class MyApp.SecondApp.WelcomeView extends Backbone.Marionette.ItemView
template: '#second-template'
MyApp.SecondApp.display = ->
welcomeView = new MyApp.SecondApp.WelcomeView()
MyApp.content.show welcomeView
MyApp.addInitializer ->
MyApp.WelcomeApp.display()
我的模板只是 index.html 中的脚本块。实际上,我将 WelcomeApp 使用的模板与 SecondApp 使用的模板进行了交换,当我这样做时,WelcomeApp 可以很好地找到“#second-template”。
我用backbone.marionette 0.9.10和0.9.11都试过了。
这里的任何帮助将不胜感激!