Создание пользовательских _nested_ HTML-тегов с использованием x-tag
Я пытаюсь создать собственный HTML-тег, используя http://www.x-tags.org/ Mozilla. Я смог зарегистрировать тестовый тег и правильно его использовать; Однако я не могу найти хороших примеров вложенных тегов.
Например:
<parent-tag parent-attribute="parent">
<child-tag child-attribute="child1"/>
<child-tag>child2</child-tag>
</parent-tag>
Я могу получить родительский атрибут, используя 'accessors', но как мне получить дочерний атрибут или значение второго дочернего тега?
Я видел пару подсказок, что в жизненном цикле дочерних узлов я должен ссылаться на родительские узлы. Однако, как это работает, когда набор иерархии тегов работает вместе, чтобы создать результат:
<chart-tag width="300", height="300">
<chart-x-axis isVisible="false"/>
<chart-y-axis min="0" max="100"/>
<chart-legend> this is the legend</chart-legend>
</chart-tag>
Чтобы преобразовать этот готовый теговый суп в диаграмму, мне нужно получить все значения из всех узлов. Должен ли я сам начинать обход узлов родителя / брата?
1 ответ
Я смог решить это, хотя я не уверен, что это лучший способ.
В родительском теге к моменту вызова "вставленного" жизненного цикла все дочерние узлы были проанализированы и могут быть доступны
xtag.queryChildren(this,'child-node-tag');
Ссылка на дочерние узлы может использоваться для прохождения его атрибутов: childnode.attribute1
Обратите внимание, что дочерние теги также должны быть зарегистрированы, хотя, по-видимому, нет необходимости "связывать" родительские и дочерние теги каким-либо прямым способом. Очень простой пример доступен по адресу https://github.com/falconair/dimple-chart/blob/master/dimple-chart-test.htm (посмотрите на код в начале истории версий, не знаю как это будет развиваться со временем).