gpt4 book ai didi

javascript - Meteor:跨所有浏览器更新

转载 作者:行者123 更新时间:2023-11-29 22:20:39 26 4
gpt4 key购买 nike

我正在开发我的第一个 Meteor 应用程序,但我不知道如何在所有浏览器上更新某些内容。

情况是这样的:当一个人正在打字时,我想在所有浏览器上显示“正在打字...”(对每个用户也是如此),但我不知道该怎么做。

到目前为止,这是我的代码:

Messages = new Meteor.Collection("messages");
if( Meteor.isClient ) {

// Templating
Template.messages.entries = function() {
return Messages.find();
};

// Events
Template.messages.events({
'click #new_post' : function() {
var new_message = document.getElementById("new_message").value;
if( new_message.length > 0 ) {
Messages.insert({ text: new_message });
document.getElementById("new_message").value = "";
}
},
'focus #new_message' : function() {
// Say "typing..."
},
'blur #new_message' : function() {
// Say nothing
}
});
}

如您所见,我想说的是:在文本字段获得焦点时键入。现在我以前试过这个(但没有成功):

'focus #new_message' : function() {
// Say "typing..."
Template.messages.typing = function() {
return "typing...";
};
},

但它没有更新我的 HTML。我的模板中有 {{typing}} 标签,它是模板消息,没错。但是不会更新..

你们有线索吗?

最佳答案

在 Meteor 中只有 Collections 可以跨浏览器同步发布/订阅。

也许您可以拥有一个类似 Users 集合的东西,其中包含一个 is_typing 字段,并用它创建一个响应式模板助手?

非常基本的例子:

Template.messages.is_typing = function() {
return Users.find({is_typing:true}).count() > 0
};

在模板中

<template name="messages">
{{#if is_typing}}
typing
{{else}}
idle
{{/if}}
</template>

关于javascript - Meteor:跨所有浏览器更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12603145/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com