在Meteor应用程序中设置Textarea值的正确方法是什么?

elr*_*icL 3 meteor

目前,如果代码包含类似的内容

<div>{{some_value}}</div>
Run Code Online (Sandbox Code Playgroud)

完美的工作.而

<textarea>{{some_val}}</textarea> 
Run Code Online (Sandbox Code Playgroud)

仅在光标不在文本框中时才有效

rdi*_*ert 6

这是故意的流星行为.在文档中:

手写应用程序中另一个棘手的问题是元素保存.假设用户在元素中键入文本,然后重新绘制包含该元素的页面区域.当重新创建时,用户可能处于颠簸状态,因为焦点,光标位置,部分输入的文本和重音字符输入状态将丢失.

这是Meteor自动解决的另一个问题.只需确保每个可聚焦元素都具有唯一ID,或者具有在具有id的最近父级中唯一的名称.即使重新渲染其封闭模板,Meteor也会保留这些元素,但仍会更新其子节点并复制任何属性更改.

Meteor不会更新<input><textarea>具有焦点,因为在许多情况下,如果用户试图输入某些东西,这对用户来说会非常具有破坏性(想象一下,当它突然被覆盖时,你会在字段中输入一个段落).但是,它确实意味着用户在与另一个用户或其他被动变更发生冲突时不会获得更新.如果要覆盖此行为,您可能有一个隐藏<div>或js数据元素,您可以使用它来为您的应用程序进行适当的更新(可能标记有新值或简单地覆盖它).这种碰撞并非易事,可能需要根据具体情况采取不同的行为.也许Meteor的未来版本将为我们提供一些工具来简化处理.有关更多背景信息,请参阅此帖子.