您可能會更好地使用反應式div來使用集合中的數據(我將使用原始HTML的示例,但是您可能更適合使用顯示的內容來實現自己的功能:即
基本上接管熱代碼互換
客戶端HTML代碼
<template name="home">
<div>
{{{content}}}
</div>
</template>
JS的reactivity優點代碼
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"
}
}
您可以在蒙戈集合或類似的東西(在你的Web控制檯,客戶端或服務器端JavaScript)更新您的內容:
Meteor.call("updatecontent","New content",function(err,result) {
if(!err) {
console.log(result)
}
});
將更新代碼直播當你使用它。
對不起,它很長,但它的大部分是設置/更新html。它實際上比熱代碼交換更好,它將刷新用戶的頁面