Javascript 实时更改内容-meteor
我有一个小应用程序(我的第一个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
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