我想创建一个这样的标签
<mytag>
<p class={ hide: doEdit }>
<a class="icon1" onmousedown={ startEdit }></a>
<input type="text" value={ opts.value } readonly/>
</p>
<p class={ hide: !doEdit }>
<a class="icon2 onmousedown={ endEdit }></a>
<input name="editfield" type="text" value={ opts.value }/>
</p>
this.doEdit = false
startEdit(e){
this.doEdit = true
this.update()
}
endEdit(e){
this.doEdit = false
opts.value = this.editfield.value // this does not change opts.value, unfortunately
this.update()
}
</mytag>
如果它会起作用,我可以像这样使用它
var mydatamodel = {"input1":"email","input2":"name"}
<mytag value={ mydatamodel.input1 }></mytag>
<mytag value={ mydatamodel.input2 }></mytag>
不幸的是,这似乎不起作用。mydatamodel.xy 没有更新,我无法为 opts.value 分配新值(也不例外,opts.value 根本不会改变它的值)。
根据孩子中“编辑字段”的新值更新父母模型的好方法是什么?
可以使用 this.mytag[i].editfield 访问数据。但这对于较大的表格不是很好的解决方案。我还尝试使用自定义事件并在子标签中触发它。但是,我还没有找到合适的通用解决方案来更新父标签中的模型。这种方法导致了一些笨拙的“this.mytag[i].editfield”方式。
是否有一种方法可以以可以编写的方式创建子标签
<mytag value={ mydatamodel.input1 }></mytag>
mydatamodel.input1 在子标签中更改后立即更新?
谢谢你的想法。