0

我正在使用流星在 DOM 中插入任务(div)。有一个名为“tasks_lists”的集合存储在本地 var ocTasksLists 中,因此调用

var oTaskList = new TaskList();
ocTasksLists.insert(oTaskList);

在客户端中,应该在 DOM 和服务器 mongo 数据库中包含新的 task_list。

首先,它包含在 DOM 中,几毫秒后,它从 DOM 中消失。我找不到问题的原因。该文档被插入到服务器 mognodb 中,如果我刷新页面 (F5),那么它确实出现在 DOM 中。服务器中的插入允许规则始终返回 true。

更改或删除 tasks_lists 时没有任何问题。

谢谢

4

1 回答 1

0

您必须在服务器上添加一个 Collection.allow 规则,发生的情况很可能是您删除了不安全的包,因此需要为每个数据库操作(即插入、更新、删除)提供明确的规则。

oTaskList = new Meteor.Collection("tasklist");

oTaskList.allow({
insert: function (userId, doc) {
    return userId === doc.user_id;
 },
update: function (userId, doc) {
    console.log(EJSON.stringify(doc));
    return userId === doc.user_id;
 }
});

此代码应仅在服务器上运行,或者将其放在/server应用程序的目录中或Meteor.isServer条件块中

更多关于流星允许http://docs.meteor.com/#allow

有关仅在服务器上运行的代码的更多信息http://docs.meteor.com/#meteor_isserver

于 2013-06-25T14:50:32.950 回答