2015-08-27 3 views
0

У меня есть элемент dom-repeat, который создает бумажно-радиогруппу с несколькими бумажно-радио-кнопками. Эти радиокнопки содержат две части уникальной информации, загруженной из массива. Название модели и цена. Мне нужно иметь возможность загрузить название модели и цену выбранной радиокнопки.Получить несколько значений выбранной бумажной радио-кнопки

Я могу загрузить имя выбранной модели, но не могу понять, как это сделать с ценой в то же время. Вот код, который я в настоящее время, который отображает имя:

<paper-radio-group class="layout vertical" id="modelgrp" selected="{{selected}}" > 
<template is="dom-repeat" items="{{models}}" > 
<paper-radio-button name="{{item.model}}" id="modelsel"><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>{{selected}}</span></paper-item> 

Мне нужно, чтобы иметь возможность вызвать item.price выбранного элемента так же, как я называю item.model, написав {{}} выбран.

Я был отправлен this link, поскольку это как-то вроде ответа на мой вопрос, но я действительно не понимаю код и как его применить к моему.

ответ

1

Использование selected-item и добавить условный атрибут для каждого значения (model и price) на paper-radio-button элемент:

<paper-radio-group class="layout vertical" selected-item="[[selectedItem]]"> 
    <template is="dom-repeat" items="[[models]]" > 
    <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> 

Затем установки наблюдателя для отслеживания изменений selectedItem и установить два значения, которые вы хотите захватить как следует:

... 

observers: [ '_selectedItemChanged(selectedItem)' ], 

_selectedItemChanged: function(el) { 
    this.price = el.getAttribute('price'); 
    this.model = el.getAttribute('model'); 
}, 

... 
+0

Спасибо! Это работает так, как предполагалось в браузере, но когда я меняю два варианта, я получаю «Uncaught TypeError: не могу прочитать свойство getAttribute« неопределенного »в строке 150, которое является« this.model = el.getAttribute («model»); " – Edalol

+0

Отредактирован ответ. Необходимо изменить привязку данных к 'selected-item' (' {{}} 'к' [[]] '), потому что если используется двусторонняя связь, два события запускаются' paper-radio-group', _selectedItemChanged' для вызова с нулевой ссылкой. – Ricky

Смежные вопросы