流星:两个名称列表,项目可以在它们之间交换

Meteor: Two lists of names that items can swap between

本文关键字:项目 交换 之间 列表 两个 流星      更新时间:2023-09-26

我开始学习流星和Javascript,并试图创建一个应用程序,其中有两个列表(一个"是"列表和"否"列表)的名字的一部分。我希望用户能够在任意一个列表中选择多个项目,并单击按钮将选中的项目交换到相反的列表。

我最初的设计是基于《流星》的排行榜例子,但后来我意识到它不允许多重选择,也没有真正适应我想要的多重选择功能。

那么,两个问题:

  • 为了做到这一点,我在我的名字字典中添加了另一个变量,这样每个名字都有一个"选定"的值,该值要么为真,要么为假。然后,当人们点击"switch"按钮时,从css文件和事件中突出显示将检查字典中的元素是否为"selected"= True。这是一个好的/可行的方法来实现这个功能吗?

  • 流星排行榜的例子设置和检查"selected_player"与会话。Get,。set和。equal。我需要在我的Javascript中使用这些函数吗?为什么我不能用个别的呢?select = 0, 'if (individual;选中=== 1)'之类的?

回答你的第一个问题:是的,这是一个好方法。

您应该使用Session,因为它是流星提供给您的响应性数据源。请阅读有关反应性的文档,以了解有关其工作原理的更多信息。我还建议观看原始的Meteor屏幕视频,以了解Session如何提供帮助。简单地说,如果您编写的模板或帮助程序从Session中读取。当相同的会话密钥更新时,模板将自动重新呈现。

例如,要尝试一下,这里有一些代码可以使用,如果您单击按钮,div的类将在选中和空之间来回切换:

在客户端javascript:

Template.list.selected = function() { return Session.get("selected") ? "selected" : ""; }
Template.list.events({ "click button": function() { Session.set("selected", !Session.get("selected")); });

模板中:

<template name="list">
  <div class="{{selected}}"></div>
  <button></button>
</template>