在Meteor中设置ShareJS

时间:2015-11-24 12:08:53

标签: javascript meteor sharejs

我在设置meteor-share.js时遇到问题。

基本上我跟着他们的README。

{{> sharejsAce docid=docid id="editor"}}

这里的第二个docid是多少?我想这是模板的辅助函数,它包含我要同步的文档的唯一名称?

第一个docid是什么?这是meteor-share.js的关键字吗?

一旦我将其包含在html(或模板)中,我需要在js端(客户端/服务器?)做什么?有什么我应该做的模板(sharejsAce)来共享文本吗?

我没有在页面中维护多个编辑器,因此我不确定应该包含哪些内容并从演示中排除。

我想知道这是否只是API中的一个错误。当我改为codemirror编辑器时,它只是工作。错误是说:

  

未捕获的TypeError:无法读取未定义的属性“范围”

1 个答案:

答案 0 :(得分:1)

我假设您使用的是1.2.0版。如果是这种情况,则需要强制降级到1.1.9版。

您可以通过运行以下命令来执行此操作:meteor add mizzao:sharejs-ace@=1.1.9或在.meteor/versions文件中手动更改版本:mizzao:sharejs-ace@1.1.9

GitHub上了解有关此问题的详情。

  

这里的第二个docid是什么?我想这是它的辅助功能   包含我想要的文档的唯一名称的模板   同步?

docid中的{{> sharejsAce docid=docid id="editor"}}参数用于指定应在编辑器中显示的文档。因此, second docid是辅助函数的名称,它只返回已选择的文档_id

Template.docItem.events =
  "click a": (e) ->
   e.preventDefault()
   Session.set("document", @_id)


Template.editor.helpers
  docid: -> Session.get("document")
  

一旦我将其包含在html(或模板)中,我需要做什么   js方面(客户端/服务器?)?有什么我应该做的   模板(sharejsAce)共享文本?

如果您想使用Meteor集合镜像ShareJS数据并使用ShareJS用户访问控制,您需要创建一个设置文件,如demo

{
  "sharejs": {
    "options": {
      "accounts_auth": {
        "authorize": {
            "collection": "documents",
            "token_validations": {
              "or": {
                "invitedUsers": "is_in_array",
                "userId": "is_equal"
              }
            },
            "apply_on": [
              "read",
              "update",
              "create",
              "delete"
            ]
        },
        "authenticate": {
            "collection": "users",
            "token_validations": {
              "_id": "is_equal"
            }
        }
      }
    }
  }
}