我很想知道Meteor是否适合关注,以及我将如何编写代码。
我想创建一个网页,通过特定“div”中的代码,可以即时热切换到当前正在查看该页面的用户。 (例如,div包含一些文本,但随后图像会替换它。)理想情况下,交换将由网页管理员通过单击按钮手动执行,或者某些代码在服务器上触发。网页的常规查看者无法执行此操作 - 他们只能看到页面上的实时更改。
现实生活中的例子:
现场互联网广播是无线播放,因此“div”包含“无线”文字。当广播播出时,代码的实时热交换发生,并且网页的观众现在看到“div”中的html5广播播放器。之后,一旦广播播出,它就会被换回来。
我对Meteor平台完全不熟悉,所以我认为自己是新手:)感谢任何帮助。
答案 0 :(得分:0)
使用来自集合的数据使用反应div可能会更好(我将使用原始HTML的示例,但您可能最好使用要显示的内容来实现您自己的功能:ie
基本上利用reactivity而不是热门代码交换
客户端HTML代码
<template name="home">
<div>
{{{content}}}
</div>
</template>
js代码
if(Meteor.isClient) {
MyCollection = new Meteor.Collection("MyCollection")
Template.home.content = function() {
if(MyCollection.findOne()) {
return MyCollection.findOne().content
}
}
}
if(Meteor.isServer) {
MyCollection = new Meteor.Collection("MyCollection")
//Set an initial content if there is nothing in the database
Meteor.startup(function() {
if(!MyCollection.findOne()) {
MyCollection.insert({content:"<h1>Test content</h1><p>Test Data</p>"
}
}
//A method to update the content when you want to
Meteor.methods({
'updatecontent':function(newcontent) {
id = MyCollection.findOne()._id
MyCollection.update(id, {$set:{content:newcontent}});
return "Done"
}
}
您可以在mongo集合中更新您的内容,也可以在(在您的Web控制台,客户端或服务器端javascript中)更新您的内容:
Meteor.call("updatecontent","New content",function(err,result) {
if(!err) {
console.log(result)
}
});
使用时会更新代码。
我很抱歉这很长,但其中很大一部分是设置/更新html。它实际上比热门代码交换更好,它会刷新用户的页面