Не литые полимерные элементы

На основной странице HTML: index.html

<poly-container a="Hi">
    <poly-item b="hi"></poly-item>
</poly-container> 

В определении Polymer HTML: polycontainer.html

<poly-container>
    <template> ...
        <content></content>
    </template> 
</poly-container>

В классе Dart: polycontainer.dart ...Имейте тег <content> для рендеринга внешнего DOM; ...и 2 класса: PolyContainer и PolyItem

  processList() // calling from PolyContainer Constructor;
  {
      PolyItem cl;  
      HtmlElement a;

      ContentElement cont=shadowRoot.querySelector('content');
      List<Node> chil=cont.getDistributedNodes();

      for (var i=0; i < chil.length; i++) {  
         if ( chil[i].nodeName == 'POLY-ITEM' ) {   
           a=chil[i];  // (1)  
           cl=chil[i] as PolyItem; // (2)
           cl=a as PolyItem; // (3)
         }
         chil[i].remove();
      }
  }

(1) Разыграть ОК; (chil[i] — тип Node, а «a» — тип HtmlElement (Node->Element->HtmlElement)

(2)* Исключение: тип «HtmlElement» не является подтипом типа «PolyItem» в приведении типа.

(3)* Исключение: тип «HtmlElement» не является подтипом типа «PolyItem» в приведении типа.

Вариант 2 и 3 проверены в разное время.

Я подумал, не нужно ли нам запустить какую-то переменную или вызвать функцию в конструкторе PolyItem. Кто-нибудь пробовал приводить расширенный класс PolymerElement?


person marcelo    schedule 18.01.2014    source источник


Ответы (1)


Это должно работать.

Просто установите точку останова и запустите приложение. Отладчик останавливается в точке останова и показывает такую ​​информацию, как тип и значение или переменные в области видимости.
Вы также можете добавить print(chil[i]);, который обычно дает информацию о типе (если вы не используете DartEditor или отладчик не работает что до сих пор иногда случается).

Вы должны опубликовать весь код ваших PolyContainer элементов HTML и Dart.
Если он содержит код, который не имеет ничего общего с проблемой, создайте минимальный пример, позволяющий воспроизвести проблему, и опубликуйте этот код.

person Günter Zöchbauer    schedule 18.01.2014