Как добавить атрибуты к динамически созданному компоненту

Я хотел бы добавить опубликованный атрибут к динамически созданному компоненту. Код компонента показан ниже:

  <!DOCTYPE html>

  <link rel="import" href="name-form.html">
  <link rel="import" href="../../shared/red-asterisk.html">

  <polymer-element name='name-view'>
    <template>

      <div id='name-view' class='flex-row-container view'>
        <section id='row0' class='flex-row' >
          <button id='add-name-btn'
                  class='button add-button'
                  on-click='{{addName}}'
                  autofocus>Add Name</button>
          <red-asterisk></red-asterisk>
        </section >

        <section id='names' class='flex-column'>

        </section>
      </div>

    </template>

     <script type="application/dart">

      import 'package:polymer/polymer.dart';
      import 'dart:html' show Event, Node, Element;

      @CustomTag( 'name-view' )
      class NameViewForm extends PolymerEment
      {

        @published String receiver = '';

        NameViewForm.created() : super.created();


        void addName( Event e, var detail, Node target )
        {
          if( $[ 'names' ].children.length < 1 )
          {
            $[ 'names' ].children
                        .add( new Element.tag( 'name-form' ) );


          }

          $['names'].on["deleteDispatch"]
                   .listen( (Event e)
                       {
                          (e.target as Element).remove();

                       });

        }
      }

    </script>
  </polymer-element>

Это элемент («имя-форма», созданный

     $[ 'names' ].children
                 .add( new Element.tag( 'name-form' ) );

к которому я хотел бы добавить атрибут Receiver='Patient'.

Спасибо


person st_clair_clarke    schedule 04.01.2014    source источник


Ответы (1)


Это дополнительный вопрос к Custom Events in Nested Polymer Dart UI? В этом случае нет необходимости создавать опубликованный атрибут. Вы можете просто добавить поле типа role в класс и установить для этого поля значение 'nok-form' или 'patient-form'.

Element nameForm = new Element.tag( 'name-form' )
nameForm.role = 'nok-form';
 $[ 'names' ].children
                 .add(nameForm);

Опубликованный атрибут нужен только тогда, когда вы хотите установить значение в разметке (HTML).

person Günter Zöchbauer    schedule 05.01.2014
comment
Да, Гюнтер, это так. В вашем решении выше поле не сможет помочь мне решить, куда отправить модель формы имени. Пользовательские события в пользовательском интерфейсе Nested Polymer Dart -- ‹name-form id='name-form' reciever=nok-form on-nameEvent={{useModel}}›‹/name-form› ‹name-form id='name- form' reciever=patient-form on-nameEvent={{useModel}}›‹/name-form› -- поле получателя выглядит многообещающе, но его нужно установить в родителях name-form, а затем получить доступ в name- форма, где она будет использоваться для динамического определения, куда отправить модель формы имени - person st_clair_clarke; 05.01.2014
comment
Зачем тебе все это? Если вы не предоставите больше информации о том, почему вы хотели бы делать такие вещи, почти невозможно дать какое-то руководство. - person Günter Zöchbauer; 05.01.2014
comment
Модель имени в форме имени отправляется либо модели пациента, либо модели nok в качестве вложенного свойства, поэтому формы имени, вложенной в nok-form›.Мне нужен механизм, чтобы определить, в какую модель модель name1 и name2 следует отправить в детали CustomEvent. - person st_clair_clarke; 05.01.2014
comment
@st_clair_clarke В этом посте нет ни слова почему вы хотите это сделать. Какая большая идея стоит за этой архитектурой? Каков вариант использования? - person Günter Zöchbauer; 05.01.2014