Polymer 1.0 paper-radio-group selection - 如何获取所选项目

时间:2015-11-09 13:13:17

标签: polymer polymer-1.0 paper-elements

我试过this solution,但似乎对我没有任何作用。我有Polymer 1.0。

只有我从解决方案中做出的改变是将observers置于data属性中并且使得#34;不受保护"。我从here得到了这个想法。

最初,我使用了Ricky解决方案中的确切方法,但这对我来说也不起作用。

以下是我的自定义元素的样子:



<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>
&#13;
&#13;
&#13;

如果我理解正确,那么每个[[model]]下的[[price]]paper-item等变量应该被选定的值替换。

我在selectedItemChanged函数中尝试了一个警告来检查它是否至少被调用但我没有。

同样,在this帖子中,我注意到Polymer version 1.0.2已被提及,此处已经介绍了此修复程序。这是我面临的问题吗?如果是这样,我该如何升级到这个版本?如果不是这样,请告诉我我在做什么错。

1 个答案:

答案 0 :(得分:0)

属性没有observers字段。您必须在“类”本身上使用单个observer属性(请参阅here)或observers字段(请参阅here):

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