私が書き込もうとしているこのcoffeescript+backbone.marionetteアプリケーションでは、コンテンツ領域に別のビューを表示しようとすると、「NoTemplateError:テンプレートが見つかりませんでした:'#second-template」が表示されます。
これは、 DavidSulcのBackboneBooksチュートリアルに基づく2つのコードです。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.marionette0.9.10と0.9.11の両方でこれを試しました。
ここでの助けは大歓迎です!