尝试启动并运行简单版本的代码镜像,但是当我在两个差异浏览器(或一个incog)上访问文档时,我在控制台中收到此错误:
解析前向通道时出错错误:transformData
处的地图无效这是两个差异用户登录并访问同一个文档。没有人登录时工作正常,只有两个差异浏览器访问doc。我按照root中的指示设置了settings.json文件,我正在运行meteor 1.2.1,因为这是仍然适用于Sharejs的版本。我正在运行它:meteor --release 1.2.1 --settings settings.json。
{
"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"
}
}
}
}
}
}
在HTML中,当文档呈现时都具有正确的docid(即相同的docid)......但显然我没有看到文本镜像。
使用简单的代码镜像版本({{> sharejsCM docid=docid id="editor"}}
)
有什么想法吗?
答案 0 :(得分:0)
查看https://www.coursera.org/learn/web-application-development/lecture/QAxTR/textcircle中的示例 代码是:textcircle.html:
<head>
<title>Text Circle</title>
</head>
<body>
<h1>Welcome to Text Circle - a Collaboration Tool.</h1>
{{> editor}}
</body>
<template name="editor">
{{> sharejsCM docid=docId id="Editor"}}
</template>
---- textcircle.js:
this.Documents = new Mongo.Collection("documents");
if (Meteor.isClient) {
Template.editor.helpers( {
docId: function () {
var doc = Documents.findOne();
if (doc) {
return doc._id;
} else {
return null;
}
}
})
}
if (Meteor.isServer){
Meteor.startup(function(){
// code to run on server at startup
if (! Documents.findOne()) { // No docs yet.
Documents.insert({title: "My new documents."})
}
})
}
我还不知道id =“editor”是做什么的。我在这里将它改为id =“Editor”,甚至将其删除,两个窗口之间的结果没有明显区别。