2

アウレリアの<compose>エレメントについての簡単な質問です。次のように、カスタム要素をフォーム コントロールとして挿入するために使用したいと考えていました。

<!-- Loop through form controls -->
<div class="form-group" repeat.for="control of controls">
  <label><span t="${control.label}"></span></label>
  <compose view-model="resources/elements/${control.type}/${control.type}" 
    value.bind="control.value" data.bind="control.data" placeholder.bind="control.placeholder"></compose>
</div>

ただし、要素が,およびパラメータの<compose>受け入れのみに制限されているように見え始めています。あれは正しいですか?、、などのパラメータをに基づいてカスタム要素に渡す最良の方法は何ですか?modelview-modelviewvaluedataplaceholdercontrol.type

私のソリューションで編集:

結局、Aureliaは,および属性<compose>でのみ動作するようです。私の解決策は、次のようにすべてのデータを渡すことです(複数のアイテムを単一のオブジェクトとして渡すことができます)viewview-modelmodel

<compose view-model="resources/elements/${control.type}/${control.type}" 
         model.bind="{'control': control, 'model': model, 'readonly': readonly}">
</compose>

興味深いと思ったのは、 を使用する場合、パラメータを受け取るためにデコレータをmodel.bind使用する必要がないことです。@bindableビューですぐに使用できます。

4

2 に答える 2