、など@id
の属性名を持つモデルがあります。@type
テンプレート(アンダースコア付き)で使用しようとする<%= @id %>
と、Marionette.ItemView
Uncaught SyntaxError:予期しないトークンILLEGAL
構文を使用して['@id']
も、期待した結果は得られません。
serializeData
関数をオーバーライドする必要がありますか?
ありがとう
、など@id
の属性名を持つモデルがあります。@type
テンプレート(アンダースコア付き)で使用しようとする<%= @id %>
と、Marionette.ItemView
Uncaught SyntaxError:予期しないトークンILLEGAL
構文を使用して['@id']
も、期待した結果は得られません。
serializeData
関数をオーバーライドする必要がありますか?
ありがとう
アンダースコアテンプレートは内部にJavaScript式を必要と<%= ... %>
し、コンパイルされたテンプレートはを使用するwith
ため、通常、オブジェクトのプロパティを変数であるかのように参照できます。あなたの問題はそれ@id
が有効なJavaScript式ではないということです。
そうです、sserializeData
を削除するためにあなた自身を提供すること@
はおそらくあなたの最善の策です。別の可能性は、次のvariable
オプションを使用すること_.template
です。
デフォルトでは、テンプレート
with
はデータの値をステートメントを介してローカルスコープに配置します。ただし、変数設定で単一の変数名を指定できます。これにより、テンプレートのレンダリング速度を大幅に向上させることができます。_.template("Using 'with': <%= data.answer %>", {answer: 'no'}, {variable: 'data'}); => "Using 'with': no"
次に、次のようなものを使用できます<%= data['@id'] %>
。@
問題は、このアプローチをMarionetteで機能させることは、カスタムserializeData
メソッドで単にsをクリーンアップするよりも多くの作業になる可能性があることです。