在 AngularJS 中创建向下钻取表单

Creating a drill-down form in AngularJS

我正在尝试使用 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 合作,所以如果任何有专业知识的人有任何更具体的建议(相关包等),将非常欢迎。

我想出了我正在寻找的概念的名称 "Cascading Selects." 弄清楚后,我就能够找到许多有用的资源来完成此任务。 Here is one example。有趣的是,了解正确的词汇是多么重要!

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

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