2

問題は、テキスト ノードだけでなく、value 属性が設定されたオプション要素をレンダリングすることです。

したがって、私の ItemView で tagName を option に設定しても、これだけではありません。現時点での解決策は、それをオプションに設定し、ItemView コンストラクターで次のコードを使用して値属性を設定することです。

 onRender: function () {
            this.$el.attr('value', this.model.get('name'));
        }

これは機能します。

しかし、他の方法はありますか?

私が本当にやりたいことは、Marionette に要素をまったく出力しないように指示し、ItemView テンプレートに次のようにすることです。

<option value="<%= name %>"> <%= name %> </option>

これは可能ですか?

4

3 に答える 3

0

可能ですが、少し面倒です。デフォルトでは、Backbone は常にラッパー要素 (tagName を使用して定義可能) を使用しますが、属性を明示的に入力する必要があります (上記のように)。

ただし、少し複雑な setElement アプローチを使用してラッパー要素を回避することは可能です。これにより、モデルから入力されたルート ノードの属性を使用して、すべてのマークアップをテンプレートに保持できます。個人的には、懸念事項をより明確に分離できると思うので、このアプローチも気に入っています。

例については、こちらをご覧ください- 「this.el」ラッピングではなく、バックボーン

マリオネットにこれを行うためのメカニズムが組み込まれているかどうかはわかりません。

于 2013-07-03T13:36:49.127 に答える