Как ссылаться на экземпляры WebComponent?

Я хотел бы передать ссылку на экземпляры WebComponent, созданные в разметке, в класс dart WebComponent. Например:

HTML:

<element name="x-container>
  <template iterate="x in xs">
    <x-content-elem>
      <x-item item="{{x}}" top-container="{{lexical-scoped-ref-to-container}}">
    </x-content-elem>
</template>
...

Я ищу способ получить ссылку на x-container в свойстве x-item.top-container. Главное, x-item может быть вложен каким-то сложным образом, поэтому выполнение динамического поиска может быть трудным или не очень надежным.


person jz87    schedule 04.05.2013    source источник


Ответы (1)


Вы можете использовать DOM, чтобы найти родительский элемент. Что-то вроде этого должно работать.

Изнутри x-item:

Container container = this.parent.xtag;

Пользовательский элемент действует как узел на странице. Геттер elem.xtag возвращает объект Dart, поддерживающий узел на странице.

Если между ними есть другие элементы, вы все равно можете использовать запросы CSS для поиска нужных элементов.

person Seth Ladd    schedule 04.05.2013
comment
Что еще более важно, можно ли как-то сослаться на контейнер в файле HTML с помощью правил лексической области видимости? Поиск предков в коде — это не совсем то, что мне нужно. - person jz87; 04.05.2013
comment
Почему this.parent у вас не работает? Вы можете сделать это из класса Dart для своего пользовательского элемента. Может быть, я не понимаю вашего вопроса. - person Seth Ladd; 04.05.2013
comment
this.parent оценивается во время выполнения и поэтому имеет динамические правила области видимости. Он ссылается на родителя во время выполнения. Я ищу что-то, что имеет правила лексической области видимости. - person jz87; 19.05.2013