2

我正在尝试使用 AngularJS 在 Web 应用程序中创建提交表单,其中每个表单条目的选项都取决于对先前表单条目的响应。为简单起见,我想将所有内容保留在一个页面上,并且在填写前一个表单条目之前,其他表单项将显示为灰色,或者在验证前一个响应时弹出。我想这个概念可能有一个名字,但我一直在努力通过尝试为相关搜索结果获取正确的关键字来找到这个想法的示例或教程。这个概念叫什么?

这是表单的简化示例,其中用户提交锦标赛结果。常量提供者提供定义下拉选项的对象(例如allSports.team=['Basketball', Soccer', ...]),但显示哪些选项取决于先前的用户输入(例如category=team)。

- What is the name of the tournament?
- What category of tournament sport is it? (drop down)
  - Team (yes)
  - Individual
- What sport is it? (drop down)
  - Basketball
  - Soccer (yes)
- How many games were played in the tournament? (text entry)
  - 3*
- For game 1, what was the name of the home team?
  - Cougars
- For game 1, what was the name of the away team?
  - Penguin
- Indicate which team won game 1:
  - Cougars (yes) 
  - Penguins
- (repeat for games 2-3)

提交按钮会将对象添加到tournament对象tournaments数组中,类似于以下内容:

var tournaments = [
  { 'tourneyName' = 'Cougar Classic',
    'sportType' = 'Team',
    'sportName' = 'Soccer',
    'games' = [
      { 'teams' = [ 'Cougars', 'Penguins' ],
        'winner' = 'Cougars' },
      { 'teams' = [ 'Cougars', 'Penguins' ],
        'winner' = 'Penguins' },
      { 'teams' = [ 'Cougars', 'Penguins' ],
        'winner' = 'Cougars' }
      ]       
  },
  (next tournament)  
]

然后,在网络应用程序上,用户可以按特定标准搜索比赛(所有篮球比赛、企鹅获胜的足球比赛、所有个人运动等)

您可以提供任何资源或帮助来帮助我完成类似的事情,我们将不胜感激。我非常熟悉 Angular 的基础知识和简单的表单提交,但是在我完成的教程中我还没有真正找到这个范围的东西。另外,我正在使用 angular-meteor 来解决这个问题,所以如果有专业知识的人有任何更具体的建议(相关包等),那将是非常受欢迎的。

4

1 回答 1

1

我发现我正在寻找的概念的名称叫做“级联选择”。一旦我弄清楚了这一点,我就能够找到许多有用的资源来实现这一点。这是一个例子。有趣的是,知道正确的词汇是多么重要!

我发现angular-formly也完成了我一直在寻找的许多其他事情,因为可以集成级联,可以交互地启用/禁用选项等等。

我希望这个发现对其他人有帮助!

于 2015-07-23T22:14:19.400 回答