【问题标题】:Meteor: use of cursor defined in the helper for events of the same templateMeteor:使用 helper 中定义的光标用于同一模板的事件
【发布时间】:2016-03-04 08:20:16
【问题描述】:

我有一个模板,newThings。该模板会找到所有新事物并将其显示在我的网页上。这个做完了。但是后来我想在模板中添加一个“提交”按钮,通过单击该按钮,所有新事物都将被插入到 Mongo db 的集合中。我该怎么做呢?

更详细地说,Template.newThings 的帮助器返回一个光标:return ThingsCollection.find({Checked: true}),然后我使用“#each”标签将其显示在网页上。然后我使用一个复选框来允许用户取消选中任何项目。到目前为止,一切都很好。当用户完成检查/取消检查时,他们单击“提交”按钮,我打算将仍然检查的所有内容插入一个名为“GroupsCollection”的集合中。我尝试在 Template.newThings.events 中为按钮单击定义一个函数,那么如何引用要插入的那些项目?我试过“这个”,它是空的;我尝试引用助手的名称“newitems”,它返回未定义的错误。一个更普遍的问题是:我的方法是否“像流星一样”?我应该尝试以不同的方式完成此任务吗?

如果需要,我可以发布更多代码,但我希望以上信息足够,因为这是一个有点笼统的问题。

【问题讨论】:

  • 只需添加选中的模板,我可以给你一个更好的例子。
  • 您的意思是关于模板、助手和事件的代码?现在做不到。不要和我有代码。同步问题。它们只是几行代码,非常简单。完全符合我上面的描述

标签: javascript mongodb meteor


【解决方案1】:

你可以用简单的 jquery 和 $.each 例子来做到这一点

<div>
    <p>some data</p>
    <input type="checkbox" class="check" />
</div>
<div>
    <p>some data2</p>
    <input type="checkbox" class="check" />
</div>
<div>
    <p>some data3</p>
    <input type="checkbox" class="check" />
</div>

在助手中

Template.sometemplate.events({
  'click .submit' : function() {
     $('.check').each(function() {
       if($(this).prop('checked')){
         Meteor.call('somemethod',$(this).parent().find('p').text());
       }         
    })
  }
})

这只是一个例子,它可以通过多种方式完成。

【讨论】:

  • 谢谢!当我拿到我的代码时,我会试试这个。您指的还有哪些其他方式?
  • 它实际上基于您的设置,您如何获取数据、您的结构、您的其他事件,例如,如果用户选中一个复选框,您可能会添加一个类,然后只获取该类。等
  • find('p') 在这里做什么?它是否也会导致像助手中的光标?如果是这样,我可以在帮助程序中使用find({checked:true}) 吗?
  • @MichM 它实际上发现 p 它是一个简单的 jquery 命令,所以你得到这个输入被检查的 p 的文本。在上面的例子中,我们通过选择它们的类来找到所有检查的输入 @987654325 @ 然后查看其中哪些被检查if($(this).prop('checked')){。然后获取最近的 p 的文本并将数据传递给流星方法。如果您发布模板以找到适合您的解决方案会更容易。
  • 我明白你的意思。然而,newThing 不仅仅是文本。它们是现有集合中的项目。当它们被选中时,它们形成一个组。当用户单击“提交”时,该组被记录:在现有的事物集合中记录每个新事物的 id。所以回到 html 来获取事物的属性(例如文本)听起来好像没有考虑到它们正在退出项目并且 Groups 的集合与事物的集合有潜在的关系......这样做的替代方法?
猜你喜欢
  • 2013-06-15
  • 2014-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多