Backbone.js 获得;NoTemplateError:找不到模板";有脊梁的木偶
在我试图编写的这个coffeescript+backbone.marionette应用程序中,当我试图在内容区域中显示不同的视图时,我得到了一个“NoTemplateError:找不到模板:“#第二个模板” 下面是基于的两段代码。WelcomeApp显示良好,但当我单击调用MyApp.SecondApp.display()的菜单项时,我得到NoTemplateErrorBackbone.js 获得;NoTemplateError:找不到模板";有脊梁的木偶,backbone.js,coffeescript,marionette,Backbone.js,Coffeescript,Marionette,在我试图编写的这个coffeescript+backbone.marionette应用程序中,当我试图在内容区域中显示不同的视图时,我得到了一个“NoTemplateError:找不到模板:“#第二个模板” 下面是基于的两段代码。WelcomeApp显示良好,但当我单击调用MyApp.SecondApp.display()的菜单项时,我得到NoTemplateError window.MyApp = MyApp = new Backbone.Marionette.Application() M
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”
我试过这两种方法。木偶0.9.10和0.9.11
非常感谢这里的任何帮助!感谢两位对我的问题的评论。在剥离HTML和coffeescript代码时,我注意到HTML中有一个div被错误地用
关闭。一旦我将其修复为
,一切都正常了。愚蠢的错误,但直到剥离dow之后我才看到它我需要更好的语法检查。你的模板在
s里面,但是
元素w.r.t.HTML的其余部分在哪里?在
里面?我们需要阅读所有这些代码来帮助你解决这个问题吗?不可能在一个非常简单的代码示例中重新创建这个问题吗?我很抱歉我猜你的模板在
里面,你正在删除它们,说$('body').html(some_view.render().el)
来启动你的应用程序。之后你所有的
都会消失。回答我自己的问题时,请遵循原始评论的建议。再次感谢mu太短了。