Javascript Polymer 1.0处理动态创建的纸张输入

Javascript Polymer 1.0处理动态创建的纸张输入,javascript,web-applications,polymer,polymer-1.0,Javascript,Web Applications,Polymer,Polymer 1.0,我有一张纸卡 在其中使用添加按钮,我可以动态添加2个检查和删除按钮的纸张输入 当我点击移除图标时,该行中的输入按钮被移除 单击“检查”图标时,如何获取在两张纸输入中输入的数据 注意**记住这是一个动态创建的输入框 为了添加和删除输入框,我使用notify:true创建了一个数组,每次删除都会删除一个索引,每次添加都会向数组添加一个索引 帮我做这个 添加输入框的代码: addFood:function(){ var tempArr=this.foodArray.slice(); var med=

我有一张纸卡

在其中使用添加按钮,我可以动态添加2个检查和删除按钮的纸张输入

当我点击移除图标时,该行中的输入按钮被移除

单击“检查”图标时,如何获取在两张纸输入中输入的数据

注意**记住这是一个动态创建的输入框

为了添加和删除输入框,我使用notify:true创建了一个数组,每次删除都会删除一个索引,每次添加都会向数组添加一个索引

帮我做这个

添加输入框的代码:

addFood:function(){
var tempArr=this.foodArray.slice();
var med=新对象();
医学名称=”;
医学单位=”;
节拍推(med);
这个。foodArray=tempArr;
},

/div>
添加

这可以通过为需要查找的每个元素生成唯一id来完成,以便提取用户输入值

在dom repeat模板中,应该设置元素的id。使用基于元素类型生成的id,例如:

  <paper-icon-button id="{{_doneId(item.index)}}" on-click="done">
您需要从单击处理程序中拉出索引值并查找其他元素,例如:

 done: function(e) {
    var id = e.target.getAttribute("id");
    var index = id.substr(7); // length of "_doneId" prefix
    var inputElem = this.$$("#" + this._inputId(index));
    // then access the inputElem value field, whatever that is
    console.log("the selected input value is: " + inputElem.value);
  }

我相信您希望做的是,当单击“删除”时,从列表中删除正确的项目。这是通过在单击按钮时使用事件中的模型来完成的。这是事件处理程序位于模板repeat内的结果。HTML保持不变。除了移除解决方案外,我还为您简化了添加解决方案,以便它使用聚合物推送方法进行适当的元素通知:

自定义元素的脚本:

 addFood:function(){
    this.push('foodArray',{name:"",unit:""});
 },
 deleteFood:function(e){
    this.splice('foodArray',e.model.index,1);
 },
 saveFood:function(e) {
    // Save food from array with index: e.model.index
    // Data is accessible via this.foodArray[index], or just the current row: e.model.food.*
 },

一种方法是,输入的数据作为自定义属性包含在“完成”按钮中

(您需要稍微重新组织输入数组,并将每个对象放在它自己的唯一id中)

其他方法解决这一点是考虑到聚合物的数据绑定是:

您说“为了添加和删除输入框,我创建了一个数组…”, 在相同的数组中,当您在表单中更改数据时,数据将被更新,如下所示:

"med":[
    {"id_1":{"name":"Potato", "unit":"2kg"}}, 
    ...
  ]
下一个“saveFood”回调需要搜索“med”数组中的“Potato”对象。
为了更准确地搜索,您可以使用一些id标记每个对象,然后根据该id进行搜索。

如何使用
dom repeat
动态创建它们?您可能想共享一些代码。是的,在数组上使用dom repeat。添加代码。
<paper-icon-button
            id='some_unique_id'
            icon="icons:done" 
            on-click="saveFood"
            name="{{food.name}}"
            unit="{{food.unit}}">
</paper-icon-button>
saveFood: function(e, detail, source) {

         var name = source.getAttribute('name');
         //use 'name' here
 }
"med":[
    {"id_1":{"name":"Potato", "unit":"2kg"}}, 
    ...
  ]