2017-02-24 54 views
0

我正在使用meteor,angularJS和mongodb开发一个Web应用程序。我正在创建一个消息功能,允许用户向视频添加评论。直到现在,我只实现了创建和显示消息到我的视图。用户可以创建消息,然后将其保存到mongo数据库,并在加载页面时进行检索。如何将主键存储在前端对象中MongoDB

但是,现在我想添加删除消息的功能。截至目前,我只是从数据库检索评论字符串,并显示在ng-repeat指令中。我希望能够点击显示的消息(使用前端的按钮),并从UI和数据库中删除它们。现在,我有代码来检索消息存储在前端的对象,并从视图中删除它。

但是,我没有办法在数据库中获取此消息的主键。因此,该消息永远不会从数据库中删除,并且会在页面重新加载时重新出现。

我不太了解安全性或mongo db,那么,在前端存储/检索主键最安全的方法是什么?目标是能够点击DOM中的消息,将其从DOM中删除,并拥有主键,以便它也可以从数据库中删除。

+0

那么,你打算在前端存储密钥......有什么目的?你实际上打算做什么?你在这里谈论一些不同的事情。你准确的问题是什么? – lealceldeiro

+0

对不起,如果不清楚。基本上,当我在前端点击它时,我不知道如何获得消息的主键。因此,我不知道如何从数据库中删除它 –

+0

如果您发布了迄今为止所做的一些代码,我可以更好地指出您正确的方向。到目前为止,我可以推荐你:从后端加载两个值(至少),文本(或任何你所说的)和评论ID。然后实现一个调用服务(后端)的函数(前端),该服务删除给定其id的注释(同时,当服务回调返回ok时,从后端删除注释)。当页面再次加载时,评论将不存在。 – lealceldeiro

回答

1

我从来没有用过角,所以我不知道它究竟是如何处理这个问题,但在大火只要您使用{{#each}}this上下文是从您的数据库每次重复对象是唯一的。

所以大火,如果您遍历对象(评论)的阵列,在您的评论的模板,你分配一个事件侦听器delete按钮调用使用this._id作为主键的meteor method。然后,当您单击删除按钮时,它会将该对象的ID传递给该方法。这就是数据库如何知道要删除哪个对象。

Angular将有一个类似的系统。 Here's a link to the Meteor Angular tutorial他们从ng-repeat块中删除项目。它应该有所帮助!

+1

这正是我所期待的,谢谢! –

+0

不客气! – Sean