こんにちは、私はチュートリアルに取り組んでおり、ここでの質問を拡張しています -バックボーン + レール TypeError: List.Header is not a constructor
古い質問で最初に発生した問題を修正しましたが、新しいエラーがあります (Chrome コンソールに表示されます)。
uncaught exception: Template undefined not found!
firebug コンソールでも同様のメッセージが表示されます。
このエラーが発生するだけでなく、「ヘッダー」メッセージがコンソールに表示されなくなり、フッターもヘッダーもページに表示されません (少なくともフッターが表示される前に)。
list_controller.js.coffee
@Demo.module "HeaderApp.List", (List, App, Backbone, Marionette, $, _) ->
List.Controller =
listHeader: ->
console.log "header"
headerView = @getHeaderView()
App.headerRegion.show headerView
getHeaderView: ->
new List.Header
list_view.js.coffee
@Demo.module "HeaderApp.List", (List, App, Backbone, Marionette, $, _) ->
class List.Header extends Marionette.ItemView
template: "header/list/templates/list_header"
header_app.js.coffee
@Demo.module "HeaderApp", (HeaderApp, App, Backbone, Marionette, $, _) ->
@startWithParent = false
API =
listHeader: ->
HeaderApp.List.Controller.listHeader()
HeaderApp.on "start", ->
API.listHeader()
list_header.jst.eco
<div id="header" class="navbar">
<div class="navbar-inner">
<div class="container">
<div class="row">
<div class="pull-left">
<span class="brand">Backbone Poop</span>
</div>
<ul class="nav pull-right">
<li class="active">
<a href="#">link 1</a>
</li>
<li>
<a href="#">link 2</a>
</li>
<li>
<a href="#">link 3</a>
</li>
</ul>
</div>
</div>
</div>
</div>
これは、エラーが定義されているファイルです。
バックボーン/構成/マリオネット/renderer.js.coffee
Backbone.Marionette.Renderer.render = (template, data) ->
path = JST["backbone/apps/" + template]
unless path
throw "Template #{template} not found!"
path(data)
上記のすべての行をコメントアウトしました(基本的にファイルを削除します)-そしてエラーが発生します(クロムコンソール):
Uncaught TemplateNotFoundError: Cannot render the template since it's false, null or undefined.
「パス」変数と関係がありますか?HeaderApp と FooterApp はどちらも、次のディレクトリの下にある "header" フォルダーと "footer" フォルダーにあります: app/assets/javascripts/backbone/apps