Meteor:仅在客户端修改集合

时间:2014-09-22 07:17:11

标签: javascript meteor

我有一个服务器端集合,我在客户端订阅。客户端没有对服务器端集合的写访问权。

我想仅在客户端修改集合,并在我停止订阅/移动到另一条路线时销毁该更改。

这有可能吗?

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

我会在客户端上使用转换,如下所示:

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