2

我开始学习 Meteor 和 Javascript,并尝试创建一个应用程序,该应用程序的一部分包含两个名称列表(“是”列表和“否”列表)。我希望用户能够在任一列表上选择多个项目,然后单击一个按钮将所选项目交换到相反的列表。

我最初是根据 Meteor 的排行榜示例进行此设计的,但后来我意识到这不允许多选,它并不能真正适应我想要的多选功能。

所以,两个问题:

  • 为了尝试做到这一点,我将另一个变量添加到我的名称字典中,这样每个名称都有一个“选定”值,即真或假。然后,从 css 文件中突出显示以及人们单击“切换”按钮时的事件将仅检查字典中的元素是否已“选择”= True。这是实现此功能的好/可行的方法吗?

  • Meteor 排行榜示例使用 Session.get、.set 和 .equal 设置和检查“selected_player”。我需要在我的 Javascript 中使用这些函数吗?为什么我不能只使用像 individual.selected = 0, 'if (individual.selected === 1)' 之类的东西?

4

1 回答 1

1

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

您应该使用Session它,因为它是 Meteor 提供给您的反应式数据源。阅读有关反应性的文档以了解有关其工作原理的更多信息。我还建议观看原始 Meteor 截屏视频,以了解 Session 如何提供帮助。简而言之,如果您编写从 Session.get 读取的模板或帮助程序,则每当更新相同的 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>
于 2012-12-23T19:57:53.373 回答