Выбор бумаги радиогруппы Polymer 1.0 - как получить выбранный предмет

Я пробовал это решение, но, похоже, оно ничего не делает для меня. У меня есть Полимер 1.0.

Единственное изменение, которое я сделал из решения, это поставить observers внутри data собственность и сделанное "не защищены". Я получил эту идею отсюда.

Первоначально я использовал точный подход, как в решении Рикки, но это не сработало и для меня.

Вот как выглядит мой пользовательский элемент:

<dom-module id="radio-group-binder">
  <template>
        <paper-radio-group class="layout vertical" selected-item="[[selectedItem]]">
          <template is="dom-repeat" items="[[data]]">
                <paper-radio-button name="{{item.model}}" model$="[[item.model]]" price$="[[item.price]]"><span>[[item.model]]</span> <div class="paper-font-caption"><span>[[item.price]]</span> SEK</div></paper-radio-button>
          </template>
        </paper-radio-group>
        <paper-item><span>[[model]]</span></paper-item>
        <paper-item><span>[[price]]</span></paper-item>
  </template>
  <script>
      (function () {
          'use strict';

          Polymer({
              is: 'radio-group-binder',

              properties: {
                  data: {
                      type: Array,
                      notify: true,
                      observers: ['selectedItemChanged(selectedItem)']
                  },

                  price: {
                      type: String,
                      notify: true
                  },

                  model: {
                      type: String,
                      notify: true
                  }
              },

              
              selectedItemChanged: function (el) {
                  this.price = el.getAttribute('price');
                  this.model = el.getAttribute('model');
              },
          });
      })();
  </script>
</dom-module>

Если я правильно понял, то переменные типа [[model]] а также [[price]] под каждым paper-item должен быть заменен выбранными значениями.

Я попробовал оповещение внутри selectedItemChanged функция, чтобы проверить, вызывается ли она хотя бы, но у меня ее нет.

Опять же, в этом посте я заметил, что Polymer version 1.0.2 упоминается, и это исправление было введено здесь. Это проблема, с которой я сталкиваюсь? Если это так, как я могу перейти на эту версию? Если это не так, пожалуйста, дайте мне знать, что я делаю неправильно.

1 ответ

Здесь нет observers поле для свойства. Вы либо должны использовать один observer собственность (см. здесь) или observers поле на самом "классе" (см. здесь):

properties: {
  data: {
    type: Array,
    notify: true,
  },
},
observers: ['selectedItemChanged(selectedItem)']
Другие вопросы по тегам