我在客户端订阅了一个服务器端集合。客户端无权访问服务器端集合。
我只想在客户端上修改集合,并在我停止订阅/移动到另一条路线时销毁该更改。
有可能吗?
谢谢您的回答。
最佳答案
我会在客户端上使用转换,如下所示:
var Books = new Meteor.Collection('books', {
transform: function(doc){
/*
A doc looks like this:
{
_id: "...",
title: "A nice title..."
}
*/
doc.clientTitle = new ReactiveVar("")
doc.setClientTitle = function(title){
this.clientTitle.set(title)
}
doc.getTitle = function(){
var clientTitle = this.clientTitle.get()
if(clientTitle == ""){
return this.title
}else{
return clientTitle
}
}
}
})
然后使用
theBook.getTitle()
获取标题,并使用theBook.setTitle('The new title')
仅在客户端上更新标题。注意:
ReactiveVar
来自软件包reactive-var
。