Повторное использование элемента с Dart Polymer

Предложение:

G'day, у меня есть вопрос для коллектива дартс мудрость-доверие. Я сделал наблюдение, пытаясь устранить загадочную ошибку с помощью Dart и Dart-Polymer (см.: связанные).

То, с чем я столкнулся, касается дартс-полимерадартс-полимера) - повторное использование кода элемента; во время моего исследования вышеупомянутой ошибки я создал два клонированных элемента из дартс-полимера:

  1. <x-fred> а также
  2. <z-fred>

Оба являются клонами элемента Секундомер в примере дротика-полимера.

Единственное отличие от оригинала - это название элемента (ов).

Что мне приходит в голову, так это то, что для возможности повторного использования кода хорошего "стандартного элемента ", такого как секундомер, я минимально нуждаюсь в отдельном fred.html для каждого повторного использования кода элемента I.

Это предполагает, что я могу организовать свой проект так, чтобы его было удобно и просто поддерживать.

Вопросы):

Реальный вопрос в том, как-может ли разработчик сделать следующие вещи...?

  1. повторное использование кода для определения макета элемента без необходимости создания клона (или копирования).
  2. Есть ли дартс-полимерный шаблон, чтобы (как минимум) позволить проекту повторно использовать базу код дротика для клонированных элементов дротик-полимер?
  3. Есть ли способ повторного использования определения элемента с использованием декларативного или " что-не-как ", чтобы я мог сказать:
    • <z-fred> is- секундомер-элемент (например).
  4. Существуют ли шаблоны или рецепты, позволяющие вам быть элементом секундомера, а также настраивать и / или настраивать экземпляр для определенных стилей, параметров или поведения.

Если нет, то эти вещи должны быть представлены для обсуждения. Где это происходит для дротик и [дартс: полимер]? Есть ли comp.lang.dart?:-)

Пример:

Предположим, у меня есть элемент Polymer под названием <z-fred>, И я хочу создать подкласс элемента z-fred для получения нового (дочернего) определения элемента: <x-fred>

Как я могу это сделать?

Я ожидаю, что смогу сделать что-то вроде...

  <!DOCTYPE html>
  <polymer-element name="x-fred">

    <link rel="import"     href="elements/zfred/fred.html">

    <template>
      <style>
        :host {  /* override zfred defiitions */
            background-color: blue;
            text-align: center;
            display: inline-block;
            border: solid 1px;
            padding: 10px 10px 10px 10px;
        }
      </style>
      <div>
        <x-fred> 
          <h1>X-Fred: {{counter}} </h1>
          <p>Fred X is a count-down timer.  Fred Z is a normal stopwatch (count-up).</p>
          <override>
            <button on-click="{{stop}}"  id="stopXFredButton">Stop</button>
          </override>
        </x-fred>
        <div>
           <p>this is a count-down timer.  Remaining time at end: {{ counter }} </p>
        </div>
      </div>
    </template>

    <script type="application/dart" src="xfred.dart">  </script>

  </polymer-element>

Увидеть? Мой пример не сработает, потому что здесь требуется, чтобы XFred.polymer наследовал от ZFred.polymer.

Тем не менее, я ничего не видел, чтобы связать.html plus.dart в "элементный модуль " какого-то рода. По-своему я хотел сделать это, поместив каждый виджет в отдельную папку. Чтобы это работало (и будет лучше механика), дочь должна иметь возможность переопределять родительские атрибуты Public и Protected (не private).

Я думал, что xfred.dart неявно наследовал бы zfred.dart (так как лексически) оба файла Dart не связаны с элементом Polymer. На данном этапе есть вопросы дизайна продукта, которые необходимо изучить. Варианты как:

  1. Файлы HTML имеют независимое дерево наследования для файлов.Dart.
    • Это означает, что zfred и xfred могут использовать (совместно использовать) одну и ту же базовую реализацию в различных примерах.
    • Альтернативно, можно " вызвать " подходящую реализацию.Dart определенного интерфейса.
  2. Смешанный элемент ' widget ', состоящий из спецификаций кода.html и.dart.

В реальном пользовательском интерфейсе я могу захотеть объединить множество базовых элементов пользовательского интерфейса в различные виды подэлементов для создания страницы, формы или макета. Я думаю, что жизнь остается менее грязной, следуя концепции № 1. Это удовлетворяет еще одно требование для меня, чтобы иметь возможность управлять альтернативным поведением кода для того же элемента.

В конце дня. Главный вопрос, который я спрашиваю, состоит в том, сколько составляет часть фреймворка и сколько ручного взлома работает, чтобы все оставалось счастливым?:-)

1 ответ

Другие вопросы по тегам