Полимер 1. *
Я пытаюсь установить значения по умолчанию в серии paper-radio-group
элементов, которые живут в режиме повтора.
После того, как я заполнил форму, функция addFormData
работает нормально ... она может без проблем запрашивать элементы.
Но когда форма загружается впервые, я не могу запросить элементы в функции setRadioDefaults()
... список узлов radioGroups
- это просто пустой массив. Это не условие гонки, потому что я попробовал setTimeout и все еще не добился успеха. Есть идеи почему?
addFormData: function(body) {
// WORKS GOOD, IT FINDS THE ELEMENTS
var radioGroups =
this.$$('#activeForm').querySelectorAll('paper-radio-group');
var radioGroupsArray = Array.prototype.slice.call(radioGroups);
return radioGroupsArray.map(function(radioGroup) {
var fieldID = radioGroup.attrForItemTitle;
var value = radioGroup.selected;
return {
field_id: fieldID,
value: value
};
});
},
setRadioDefaults: function() {
Polymer.dom.flush();
// WORKS BAD, DOES NOT FIND THE ELEMENTS
var radioGroups =
this.$$('#activeForm').querySelectorAll('paper-radio-group');
radioGroups.forEach(function(radio) {
radio.selected = this.noData;
});
},
<template
is="dom-repeat"
items="[[fields]]"
filter="_computeField">
<div class="row">
<label class="col1">
[[item.field_label]]
</label>
<paper-radio-group
attr-for-item-title="[[item.field_id]]"
attr-for-selected="value"
on-paper-radio-group-changed="_syncGlobalRadioBtns">
<paper-radio-button
value="[[yes]]"
name="[[item.field_id]]"></paper-radio-button>
<paper-radio-button
value="[[no]]"
name="[[item.field_id]]"></paper-radio-button>
<paper-radio-button
value="[[incomplete]]"
name="[[item.field_id]]"></paper-radio-button>
</paper-radio-group>
</div>
</template>
--------------------
setRadioDefaults: function() {
console.log('aaa');
Polymer.dom.flush();
var radioGroups =
Polymer.dom(this.root).querySelectorAll('paper-radio-group');
console.log(radioGroups);
radioGroups.forEach(function(radio) {
radio.selected = this.incomplete;
}, this)