Meteor:在访问路线之前在集合中创建新文档的最佳方式?

时间:2015-06-04 01:00:07

标签: meteor

每次用户访问特定路线时,我都希望创建一个新文档,该文档将充当用户将编辑的“草稿”,直到他们决定发布它为止。

另一种思考方式是我想在成功插入文档后将用户重定向到显示文档的新页面。

当我这样说时,我想我基本上回答了我自己的问题。在这种情况下,我只会调用一个创建并插入新文档的Meteor方法,然后在回调方法中,我将使用iron-router的Router.go方法使用新的_id作为参数重定向到url。有没有更好的办法?

2 个答案:

答案 0 :(得分:1)

在访问路线时自动创建集合是个坏主意。如果用户无意中访问该路线会发生什么?

尽管如此,您可以通过在发布函数上插入文档来实现它,它将在Meteor.subscribe上创建。

Meteor.publish('test-draft', function(options){

  var _id = Test.insert({a: 'b'});

  return Test.find({_id: _id})

})

答案 1 :(得分:0)

如果我理解你正确地做了什么,我认为最简单的方法就是创建一个对象并将其放在Session变量中,而不是在集合中创建文档,直到你和#39;重新编辑它。

您可以创建对象并将其粘贴到Session中的Templates.myTemplate.rendered = function() { ... }。然后,当它被令人满意地编辑并提交时,将Session变量传递给Method,将其作为新文档插入。