Как назначить объекты HTML в определении элемента Polymer?

Альтернативная версия вопроса: Как предотвратить экранирование объектов HTML при добавлении в определение элемента Polymer?

Итак, предположим этот упрощенный пример (все включения полимерных библиотек добавлены в реальный код):

определение элемента

<polymer-element name="x-test" attributes="val">
  <template>
    <div>{{shownVal}}</div>
  </template>
  <script>
    Polymer( 'x-test', {
      shownVal: '',
      valChanged: function(){
        this.shownVal = this.val + ' &amp;';
      }
  });
  </script>
</polymer-element>

использование элемента

<x-test val="123"></x-test>

Это приведет к такому выводу:

123

Версия: Полимер 0.1.2

Что мне нужно изменить/добавить, чтобы вывод выглядел как 123 &?

Или это какая-то ошибка, о которой я должен сообщить ребятам из Polymer?

Я знаю, что могу добавить объект в <template>, и это сработает, но у меня есть код, который изменяет входные атрибуты и требует использования объектов.


Примечание. При использовании такого элемента

<x-test val="123 &amp;"></x-test>

все нормально отрисовывается.


person Sirko    schedule 11.01.2014    source источник
comment
Пробовали ли вы this.shownVal = this.val + ' &';   -  person HBP    schedule 11.01.2014
comment
@HBP &amp; был здесь просто примером. Я хочу вставить другие объекты HTML и не хочу использовать их символьное представление.   -  person Sirko    schedule 11.01.2014
comment
Хорошо, если предположить, что ответ на мой первый вопрос положительный, тогда это будет означать, что обработка valChanged преобразует любые специальные символы HTML, такие как & и ‹, в кодировку их объектов. Затем посмотрите ответ на это: stackoverflow.com/questions/5796718/html-entity-decode, если вы абсолютно должны передавать объекты HTML.   -  person HBP    schedule 11.01.2014


Ответы (1)


Есть несколько способов сделать это:

Демонстрация обоих вариантов: http://jsbin.com/uDAfOXIK/2/edit.

person ebidel    schedule 12.01.2014
comment
Вопрос: считается ли это неявное преобразование объектов HTML функцией или ошибкой? Если фича, я думаю, она должна быть где-то задокументирована (FAQ?). - person Sirko; 15.01.2014
comment
Решение, данное здесь, не работает для меня. Возможно, все по-другому, поскольку сейчас существует другая версия Polymer? - person mknaf; 16.12.2014