Повторное использование элемента с Dart Polymer
Предложение:
G'day, у меня есть вопрос для коллектива дартс мудрость-доверие. Я сделал наблюдение, пытаясь устранить загадочную ошибку с помощью Dart и Dart-Polymer (см.: связанные).
То, с чем я столкнулся, касается дартс-полимера (и дартс-полимера) - повторное использование кода элемента; во время моего исследования вышеупомянутой ошибки я создал два клонированных элемента из дартс-полимера:
<x-fred>
а также<z-fred>
Оба являются клонами элемента Секундомер в примере дротика-полимера.
- Определить учебник пользовательского элемента.
Единственное отличие от оригинала - это название элемента (ов).
Что мне приходит в голову, так это то, что для возможности повторного использования кода хорошего "стандартного элемента ", такого как секундомер, я минимально нуждаюсь в отдельном fred.html для каждого повторного использования кода элемента I.
Это предполагает, что я могу организовать свой проект так, чтобы его было удобно и просто поддерживать.
Вопросы):
Реальный вопрос в том, как-может ли разработчик сделать следующие вещи...?
- повторное использование кода для определения макета элемента без необходимости создания клона (или копирования).
- Есть ли дартс-полимерный шаблон, чтобы (как минимум) позволить проекту повторно использовать базу код дротика для клонированных элементов дротик-полимер?
- Есть ли способ повторного использования определения элемента с использованием декларативного или " что-не-как ", чтобы я мог сказать:
<z-fred>
is- секундомер-элемент (например).
- Существуют ли шаблоны или рецепты, позволяющие вам быть элементом секундомера, а также настраивать и / или настраивать экземпляр для определенных стилей, параметров или поведения.
Если нет, то эти вещи должны быть представлены для обсуждения. Где это происходит для дротик и [дартс: полимер]? Есть ли 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. На данном этапе есть вопросы дизайна продукта, которые необходимо изучить. Варианты как:
- Файлы HTML имеют независимое дерево наследования для файлов.Dart.
- Это означает, что zfred и xfred могут использовать (совместно использовать) одну и ту же базовую реализацию в различных примерах.
- Альтернативно, можно " вызвать " подходящую реализацию.Dart определенного интерфейса.
- Смешанный элемент ' widget ', состоящий из спецификаций кода.html и.dart.
В реальном пользовательском интерфейсе я могу захотеть объединить множество базовых элементов пользовательского интерфейса в различные виды подэлементов для создания страницы, формы или макета. Я думаю, что жизнь остается менее грязной, следуя концепции № 1. Это удовлетворяет еще одно требование для меня, чтобы иметь возможность управлять альтернативным поведением кода для того же элемента.
В конце дня. Главный вопрос, который я спрашиваю, состоит в том, сколько составляет часть фреймворка и сколько ручного взлома работает, чтобы все оставалось счастливым?:-)
1 ответ
Вы можете наследовать от существующих полимерных элементов.
Для дискуссий лучшим местом являются группы Dart Google.