下面的(简化)模板呈现一个带有两个输入字段的表单,根据数据上下文预先填充。可以为几个不同的数据上下文打开表单(尽管一次只能打开一个),在这种情况下,我希望所有字段都使用新数据重新呈现 - 主要发生。
<template name="form">
<input type="text" value="{{title}}">
<input type="text" value="{{start_value}}">
</template>
当两个数据上下文对于任一字段具有相同的值时出现问题 - 例如start_value
为0非常常见。在这种情况下,当数据上下文切换时,不会重新呈现相应的输入字段。也许一个例子是有序的:
start_value = 0
start_value
对应的输入字段从0
更改为12
start_value = 0
start_value
对应的字段仍然显示12
这似乎适用于所有(原始)相同的值。使用帮助器返回值只会改变,但会确认帮助程序正在按预期重新运行。
我可以在模板实例上使用autorun-afterflush来明确更新输入字段,但有没有更惯用的方法让Meteor重新渲染“未更改”字段?
这是working example(通过工作,我的意思是它显示了什么不起作用)。
只需在干净的Meteor项目的客户端目录中创建这两个文件,您就应该能够观察到这种行为。第1项和第2项具有保存value
,因此即使您手动更改了第二个输入字段,也可以在它们之间切换时更改。第3项和第4项具有相同的title
并表现出类似的行为。
答案 0 :(得分:1)
我不确定我是否在回答您的问题,但是如果您在用户关闭表单后尝试清除值,以便在重新打开时不会重新填充该值,那么您可以使用the onDestroyed function
执行您需要的任何清理,例如清除在打开表单时看起来像您设置的会话。