2

バックボーンアプリで未定義のエラーが発生します。何が未定義なのかわかりません。ルーターのインデックス機能では、これがあります

  var view = new Enki.Views.EntriesIndex();
  console.log(view);
  $('#container').html(view.render().el);

この最後の行は私にこのエラーを与えています

Uncaught TypeError:未定義のプロパティ'el'を読み取ることができません

は、がインスタンス化されていることconsole.log(view)を示しています。view = new Enki.Views.EntriesIndex();ログの一部には次のものが含まれます

   outerHTML: "<div><h1>Enki</h1>↵↵Entries go here↵&lt;/div>"
   outerText: "Enki↵↵Entries go here↵"

そのログ出力は、ビューのレンダリング機能からのものです

render: function(){
  $(this.el).html(this.template({
  entries: "Entries go here"
  }));
 }

これがテンプレートです。

  <h1>Enki</h1>

  <%= entries %>

...これは「container」divに挿入されていませんが、上記のログ出力が示すように、ビューで読み取られています。メインページのコンテナdivには何も挿入されていません。

<div id="container">...</div>

誰かが「未定義」とは何か、そしてそれを修正する方法を教えてもらえますか?

4

1 に答える 1

2

妥当な仮定は、render関数が何も返さないため、view.render()未定義であるということです。

thisオブジェクトへの参照を返すように、レンダリング関数を変更してみてください。

render: function(){
  $(this.el).html(this.template( {entries: "Entries go here"} ))
  return this // <- important
}
于 2013-01-07T00:54:52.147 に答える