Как обновить атрибут полимерного элемента из кода дротика

Я пытаюсь изучить дротик и полимер. Вот репозиторий, на котором я пытаюсь изучить:

https://bitbucket.org/romanoff/polymer_sample

Когда я пытаюсь установить атрибут из кода дротика одного настраиваемого элемента на другой настраиваемый элемент, это не работает. Вот строка, в которой я пытаюсь это сделать: https://bitbucket.org/romanoff/polymer_sample/src/f8314627fe8eee9f6fde58c300acf081b396f927/web/clickcounter/clickcounter.dart?at=master#cl-33

Также пробовали следующие варианты: var timer = $['timer'].xtag; timer.textValue = 'Text value set form attached handler';

var timer = $['timer']; timer.setAttribute('textValue', 'Text value set form attached handler');


person user3718704    schedule 07.06.2014    source источник
comment
Как выглядит вся ваша HTML-структура? Можете выложить полный пример? Вы можете установить атрибуты, как в обычном HTML. $ ... означает, что вы используете Shadowdom. это также означает, что вы вкладываете объекты? Почему вы хотите установить textValue?   -  person Robert    schedule 08.06.2014


Ответы (1)


Есть два пути

$['timer'].attributes['textValue'] = 'Text value set form attached handler';

or

import 'path_to_dart_file_containing_timer_component#;

...

($['timer'] as MyTimer).textValue = 'Text value set form attached handler'; 

где MyTimer - это имя класса вашего элемента таймера
, а у вашего класса компонента таймера есть поле

@published String textValue;
person Günter Zöchbauer    schedule 08.06.2014
comment
Первый вариант работал нормально. Второй провалился. Вот ошибка: тип HtmlElement не является подтипом типа CustomTimer в приведении типа - person user3718704; 10.06.2014
comment
Это означает, что ваш полимер не обновлен (не инициализирован). Возможно, вам не хватает импорта для вашего элемента в HTML, или импорт недействителен, или какая-то другая проблема с инициализацией Polymer. .attributes['textValue'] = ... работает с каждым элементом. - person Günter Zöchbauer; 10.06.2014