Javascript Polymer 1.0处理动态创建的纸张输入
我有一张纸卡 在其中使用添加按钮,我可以动态添加2个检查和删除按钮的纸张输入 当我点击移除图标时,该行中的输入按钮被移除 单击“检查”图标时,如何获取在两张纸输入中输入的数据 注意**记住这是一个动态创建的输入框 为了添加和删除输入框,我使用notify:true创建了一个数组,每次删除都会删除一个索引,每次添加都会向数组添加一个索引 帮我做这个 添加输入框的代码: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=
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"}},
...
]