2016-09-02 4 views
0

Я создал пользовательский элемент только для HTML, чтобы представлять вход и всю структуру DOM, которая с ним работает.Как указать свойство двустороннего связывания в пользовательском элементе только для HTML (Aurelia)

Я установил связующие свойства в шаблоне для подачи значений в элемент. Тем не менее, я не вижу способа указать, что bindable должен быть двухсторонним.

элемент:

<template bindable="label,name,placeholder,value"> 
    <div class="form-group"> 
     <label class="control-label col-sm-2" for.bind="name">${label}</label> 
     <div class="col-sm-7 col-md-6"> 
      <input class="form-control" id.bind="name" placeholder.bind="placeholder" value.bind="value" /> 
     </div> 
    </div> 
</template> 

Я знаю, что я могу указать двухстороннее связывание каждый раз, когда используется элемент (например, <my-element value.bind="firstName & twoWay"></my-element>, но я хочу, чтобы установить по умолчанию, без необходимости создавать и поддерживать отдельный класс (то есть мне нравится HTML-единственный элемент для этого случая).

ли это возможно?

ответ

2

Я не думаю, что это возможно в простой форме. Я имею в виду, вы можете выяснить, как переопределить поведение по умолчанию каким-то образом ([source], [source]), но вполне вероятно, что вы закончите с несколькими классами для поддержания.

Documentation ясно о том, что:

Вы можете даже связываемое свойство на вашей HTML только на заказ элемент. Эти свойства по умолчанию имеют одностороннюю привязку данных, но вы не можете изменить значение по умолчанию, хотя вы по-прежнему можете явно указать направление привязки при привязке к пользовательскому элементу.

На мой взгляд, использование .two-way явного привязки - ваш самый простой вариант здесь.

<my-element value.two-way="firstName"></my-element>