Быстрый вопрос относительно Aurelia's <compose>
элемент. Я надеялся использовать его для вставки пользовательских элементов в качестве элементов формы, например:Aurelia составить
<!-- 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>
элемент ограничивается только принятием model
, view-model
и view
параметров. Это верно? Каков наилучший способ передать такие параметры, как value
, data
, placeholder
в пользовательские элементы на основе control.type
?
Редактировать с моим Решением:
В конце концов, оказывается, что Аурелия <compose>
работает только с view
, view-model
и model
атрибутами. Мое решение передать все данные (может быть несколько элементов передаются как единый объект) как это:
<compose view-model="resources/elements/${control.type}/${control.type}"
model.bind="{'control': control, 'model': model, 'readonly': readonly}">
</compose>
Что я сделал нахожу интересным является то, что при использовании model.bind
, вам не нужно для получения параметров используйте декоратор @bindable
. Они доступны сразу же в представлении.
я только что узнал от Эшли Грант, что вы не можете использовать '@ bindable' с '', и если у вас есть только элемент вида ent, представление связано с внешней областью, но если у вас есть модель представления, вам нужно пройти через 'model.bind'. –
LStarky