grof
grof

Reputation: 83

Getting "NoTemplateError: Could not find template" with backbone.marionette

In this coffeescript+backbone.marionette application I am trying to write, I am getting a "NoTemplateError: Could not find template: '#second-template' when I try to display a different view in my content region.

Here are the two pieces of code, which are based on David Sulc's Backbone Books tutorial. The WelcomeApp displays fine but when I click the menu item that then calls MyApp.SecondApp.display(), I get the 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()

My templates are simply script blocks in the index.html. I actually swapped the template used by the WelcomeApp with that used by the SecondApp and the WelcomeApp can find '#second-template' fine when I do this.

I tried this with both backbone.marionette 0.9.10 and 0.9.11.

Any help here would be greatly appreciated!

Upvotes: 3

Views: 3293

Answers (1)

grof
grof

Reputation: 83

Thanks to both commenters on my question. While working to strip down the HTML and coffeescript code, I noticed a div in my HTML that was incorrectly closed using <div>. Once I fixed that to a </div> everything worked. Stupid error but I was just not seeing it until I strip down the HTML enough that it was right in my face. I need better syntax checking.

Upvotes: 1

Related Questions