javascript - Meteor:仅在客户端修改集合

标签 javascript meteor

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

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

这可能吗?

感谢您的回答。

最佳答案

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

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

关于javascript - Meteor:仅在客户端修改集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25968540/

相关文章:

javascript - Impress.js 和使用 HTML5 数据属性代替 CSS 转换

javascript - 异步函数: TypeError: window.的回调中出现异常scrollTo不是函数(Meteor应用程序)

javascript - Meteor,服务器上的错误 : Can't wait without a fiber using Meteor. setTimeout()

javascript - 模板的 HTML 没有值

meteor - 不要对 Meteor 中的更新进行响应式(Reactive)排序

javascript - 如何在 Meteor 服务器上使用多个文件?

javascript - Reactjs 是基于面向对象的概念吗?

javascript - MapifyPro - 限制可视区域和缩放级别

javascript - 在javascript中使用正则表达式删除查询字符串

javascript - Angular 路由问题 - 2 个 donut 孔