このチュートリアル(フランス語のみ) https://github.com/k33g/articles/blob/master/2011-08-14-BB-VIEWS.mdに沿ってフォローしています。これは、Backbonejsでアンダースコアテンプレートを使用します。
チュートリアルでは、このテンプレートを以下のインデックスファイルに配置するように指示されています。
<script type="text/template" id="doc-template">
<span><%= id %></span>
<span><%= title %></span>
<span><%= test %></span>
<span><%= keywords %></span>
</script>
<div id='doc-container'></div>
index.html.erbに入れていますが、チュートリアルの作成者はrailsを使用していません。rails content_for helpersを使用してページ固有のコンテンツも含めるため、erbを使用する必要があります。
ページを表示しようとすると、未定義のローカル変数またはメソッドエラーが発生します
undefined local variable or method `id' for #<#<Class:0x007fd9c3a133b8>:0x007fd9c5066d90>
これらの変数をテンプレートから削除しても、コンテンツはページにレンダリングされません。
データをレンダリングするために私が間違っていることを誰かが説明できますか?
その他のバックボーンビュー関連コード
チュートリアルでは、ビューを初期化して適切なコンテナにレンダリングします...
el : $('#doc-container'),
initialize : function() {
this.template = _.template($('#doc-template').html());
_.bindAll(this, 'render');
this.model.on('change', this.render);
},
render : function() {
var renderedContent = this.template(this.model.toJSON());
$(this.el).html(renderedContent);
return this;
}
アップデート
コレクションビューのチュートリアルの指示に従うと、同じ問題が発生します。アンダースコアの各メソッドに対してエラーがスローされます
undefined local variable or method `_' for #<#<Class:0x007fd9c3a133b8>:0x007fd9c2c78a78>
index.html.erbのテンプレート
<script type="text/template" id="docs-collection-template">
<ol>
<% _.each(docs, function(doc) { %>
<li><%= doc.id %> : <%= doc.title %></li>
<% }); %>
</ol>
</script>