Javascript 实时更改内容-meteor

Javascript 实时更改内容-meteor,javascript,meteor,Javascript,Meteor,我有一个小应用程序(我的第一个Meteor应用程序),我想在其中添加实时内容。所以,我的代码看起来像这样 收藏 Content = new Meteor.Collection('content'); 客户 if (Meteor.isClient) { Meteor.subscribe('content'); Template.contentTpl.events({ 'keyup #content': function (e) { if (!Content.fin

我有一个小应用程序(我的第一个Meteor应用程序),我想在其中添加实时内容。所以,我的代码看起来像这样

收藏

Content = new Meteor.Collection('content');
客户

if (Meteor.isClient) {

  Meteor.subscribe('content');

  Template.contentTpl.events({
    'keyup #content': function (e) {
      if (!Content.find({_conId: / some id from session / }).count()) {
        Content.insert({text: e.target.value, _conId: / some id from session / });
      } else {
        Content.update({_conId: / some id from session / }, {text: e.target.value});
      } 
    }
  });

  Template.contentTpl.content = function () {
    return Content.findOne({});
  };
}

<template name="contentTpl">
  <textarea id="content" rows="10" cols="100">{{content.text}}</textarea>
</template>
但是,当我在两个不同的浏览器中打开此应用程序时,我会看到以下内容:当我在第一个浏览器中键入内容时,另一个浏览器中的内容会发生变化,但当我在第一个浏览器中键入另一个浏览器时,什么都不会发生。如何在meteor中添加实时更改?我应该使用socket.io之类的工具吗

p、 我在文档中找到了observe方法,但我不太明白如何使用它来更改属性,而不是所有集合

Thx.

来自流星:

默认情况下,新Meteor应用程序会自动包含保留输入 包裹这将保留输入、文本区域、按钮、, 选择、和具有唯一id属性或具有名称的选项 在id为的封闭元素中唯一的属性 属性要关闭此默认行为,只需删除 保存输入包

因此,一旦您在第一个浏览器中键入文本区域,文本将不会更改,即使
content.text
会因另一个浏览器中的更改而更改

您可以通过将把手表达式
{{content.text}}
放在文本区域之外来观察反应性是否正常工作,如下所示:

<template name="contentTpl">
  <textarea id="content" rows="10" cols="100">{{content.text}}</textarea>
  <p>
  {{content.text}}
</template>
<template name="contentTpl">
  <textarea id="content" rows="10" cols="100">{{content.text}}</textarea>
  <p>
  {{content.text}}
</template>
meteor remove preserve-inputs