Не удается передать параметры из Ionic 2 в Polymer

У меня есть компонент Polymer, который отлично работает при вызове с простой страницы index.html, но когда я пытаюсь использовать его на странице Ionic 2, параметры не передаются.

Вот объявление параметра:

<script>
  Polymer({
    is: "pnet-timeline",
    properties: {
      tlStartDate: String,
      tlDurationSecs: {
        type: Number,
        value: 86400
      },
      userId: {
        type: String,
        value: null
      },
      tlTitle: {
        type: String,
        value: 'Unknown'
      }
    },

Компонент отлично работает, когда я вызываю его из простого файла index.html следующим образом:

  <pnet-timeline user-id="lowjam" tl-start-date="2016-02-29T00:00:00.000-0600" tl-duration-secs="86400" tl-title="Trip Planning"></pnet-timeline>

Однако, когда я помещаю тот же самый тег на страницу Ionic 2, параметры не передаются в Polymer. Вместо этого все они устанавливаются в значения по умолчанию при запуске Polymer. Конечно, Polymer работает, я вижу компонент на странице и взаимодействую с ним, но у него нет его параметров.

Я не уверен, связано ли это с Ionic 2 или (что более вероятно) с Angular 2, но сейчас это ставит меня в тупик.


person Jim Lowell    schedule 05.04.2016    source источник
comment
Подробнее об этом. Похоже, что свойства заполнены правильными значениями после выполнения ready. До тех пор они имеют значения по умолчанию. Немедленная запись параметров в консоль, а затем один раз в секунду показывает значения по умолчанию, а затем последовательные правильные значения после этого.   -  person Jim Lowell    schedule 05.04.2016


Ответы (1)


Я понял это. Прочитав эту прекрасную статью о некоторых тонкостях Points of Polymer, я понял, что свойства не полностью загружается при выполнении ready.

После игры с наблюдателями и this.async у меня есть рабочее решение для моего приложения. Короче говоря, используйте this.async для кода инициализации и следите за обновлениями в наблюдателе.

Спасибо Ken Benjamin за чрезвычайно полезную статью о Polymer!

person Jim Lowell    schedule 06.04.2016