0

こんにちは、私はチュートリアルに取り組んでおり、ここでの質問を拡張しています -バックボーン + レール 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

4

0 に答える 0