、など@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をクリーンアップするよりも多くの作業になる可能性があることです。