Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 获得;NoTemplateError:找不到模板";有脊梁的木偶_Backbone.js_Coffeescript_Marionette - Fatal编程技术网

Backbone.js 获得;NoTemplateError:找不到模板";有脊梁的木偶

Backbone.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

在我试图编写的这个coffeescript+backbone.marionette应用程序中,当我试图在内容区域中显示不同的视图时,我得到了一个“NoTemplateError:找不到模板:“#第二个模板”

下面是基于的两段代码。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”

我试过这两种方法。木偶0.9.10和0.9.11


非常感谢这里的任何帮助!

感谢两位对我的问题的评论。在剥离HTML和coffeescript代码时,我注意到HTML中有一个div被错误地用
关闭。一旦我将其修复为
,一切都正常了。愚蠢的错误,但直到剥离dow之后我才看到它我需要更好的语法检查。

你的模板在
s里面,但是
元素w.r.t.HTML的其余部分在哪里?在
里面?我们需要阅读所有这些代码来帮助你解决这个问题吗?不可能在一个非常简单的代码示例中重新创建这个问题吗?我很抱歉我猜你的模板在
里面,你正在删除它们,说
$('body').html(some_view.render().el)
来启动你的应用程序。之后你所有的
都会消失。回答我自己的问题时,请遵循原始评论的建议。再次感谢mu太短了。