Javascript 聚合物列表未更新以切换内容
我有一份活动清单。每个事件都有一个名称。当名称输入字段为空时,它是可见的。当用户完成操作后,他们可以按“回车”,它将隐藏输入字段并显示相应的span。如果他们希望再次编辑该字段,可以单击span以显示输入字段 我用的是聚合物1.6。以下是我正在使用的代码: HTMLJavascript 聚合物列表未更新以切换内容,javascript,polymer-1.0,Javascript,Polymer 1.0,我有一份活动清单。每个事件都有一个名称。当名称输入字段为空时,它是可见的。当用户完成操作后,他们可以按“回车”,它将隐藏输入字段并显示相应的span。如果他们希望再次编辑该字段,可以单击span以显示输入字段 我用的是聚合物1.6。以下是我正在使用的代码: HTML <template is="dom-repeat" items="{{referralEvents}}" index-as="index" id="referralEventsElement"> <span h
<template is="dom-repeat" items="{{referralEvents}}" index-as="index" id="referralEventsElement">
<span hidden$="{{!item.name.inputHidden}}" item-index="{{index}}" on-tap="showInput">{{item.name.value}}</span>
<input hidden$="{{item.name.inputHidden}}" placeholder="Name Session" value="{{item.name.value::input}}" on-keypress="checkForEnter" item-index="{{index}}>
</template>
该值变化很好,但不会更新列表以隐藏或显示元素。有什么想法吗?我不知道为什么,但只有
this.set()
方法对我有效:
showInput: function(e){
this.set([
'referralEvents',
e.target.itemIndex,
'name',
'inputHidden'], false);
}
谢谢你的灵感,@tomasz pluskiewicz。我对此进行了测试,它还可以使用点分隔字符串代替数组来访问对象并对其进行更改
showInput: function(e){
this.set('referralEvents.' + e.target.itemIndex + '.name.inputHidden', false);
}
是的,两者都有效。我个人更喜欢数组重载。字符串连接是如此简单;)
showInput: function(e){
this.set('referralEvents.' + e.target.itemIndex + '.name.inputHidden', false);
}