Ich möchte eine dynamische Form mit Polymer erstellen, was bedeutet, dass jedes Mal, wenn der Benutzer auf "Hinzufügen" -Taste drücken, wird es ein neues Feld in das Formular hinzufügen. Oder, genauer, es wird ein hinzugefügt, wo alle Optionen von einem dom-repeat
kommen, gespeist von einem Ajax-Aufruf.dynamisch erstellen gebundene Daten mit Polymer
das ist, was ich bisher getan habe:
<div id="filterContainer">
<div class="flex rulesForm" id="filter1">
<paper-dropdown-menu name="rule1A" no-label-float>
<paper-listbox attr-for-selected="value" selected="{{filter1A}}" class="dropdown-content" id="thirdPartyFilter1A">
<template is="dom-repeat" items="{{rule1A}}">
<paper-item value="[[item]]">[[item]]</paper-item>
</template>
</paper-listbox>
</paper-dropdown-menu>
</div>
</div>
<paper-button raised on-tap="addFilterField">Add</paper-button>
<div>
und in der JS:
addFilterField: function() {
let dropdown = document.createElement('paper-dropdown-menu');
dropdown.name = "";
dropdown.noLabelFloat = true;
let listbox = document.createElement('paper-listbox');
listbox.class = "dropdown-content";
listbox.attrForSelected = "value";
listbox.selected = "{{filter1A}}";
let paperItem = document.createElement('paper-item');
paperItem.value = "[[item]]";
var itemNode = document.createTextNode('[[item]]');
paperItem.appendChild(itemNode);
listbox.appendChild(paperItem);
dropdown.appendChild(listbox);
console.log(dropdown);
filterContainer.appendChild(dropdown);
mein Problem ist, über die Datenbindung ... Wenn ich mit verwenden createTextNode
[ [item]], wird es einfach als String in das Dokument geschrieben. Gibt es eine Möglichkeit, das zu beheben? (oder eine einfachere Lösung zum Hinzufügen von Feld in einem Formular?)