我正在使用meteor,angularJS和mongodb开发Web应用程序。我正在创建一个消息传递功能,允许用户为视频添加评论。到目前为止,我只在我的视图中实现了消息的创建和显示。用户可以创建消息,然后将其保存到mongo数据库,并在加载页面时检索。
但是,现在我想添加删除邮件的功能。截至目前,我只是从数据库中检索注释字符串并将其显示在ng-repeat指令中。我希望能够点击显示的消息(使用前端的按钮)并从UI和数据库中删除它。现在,我有代码来检索消息存储在前端的对象,并从视图中删除它。
但是,我无法在数据库中获取此消息的主键。因此,消息永远不会从数据库中删除,并且会在页面重新加载时重新出现。
我对安全性或mongo db不太了解,那么,在前端存储/检索主键的最安全的方法是什么?目标是能够点击DOM中的消息,从DOM中删除它,并拥有主键,以便也可以从数据库中删除它。
答案 0 :(得分:1)
我从未使用过Angular,因此我不确定它是如何处理这个问题的,但是在Blaze中使用{{#each}}
时,this
的上下文对于数据库中的每个重复对象都是唯一的
因此,在Blaze中,如果要迭代一组对象(注释),则在评论模板中为delete
按钮分配一个事件监听器,该按钮调用使用{{1}的meteor method
作为主键。然后,当您单击“删除”按钮时,它会将对象的ID传递给方法。这就是DB知道要删除哪个对象的方式。
Angular将拥有类似的系统。 Here's a link to the Meteor Angular tutorial他们正在从this._id
块中删除项目。它应该有所帮助!