Angular:根据2阶段下拉菜单显示div内容

时间:2016-05-11 22:09:21

标签: javascript html angularjs angular-ngmodel

我想为网页提供如下构造:应该有2个下拉菜单,其中第二个下拉菜单取决于第一个下拉菜单(见下文)。此外,应该有一个div部分,显示一些内容取决于两个下拉菜单中的输入。

例如:

下拉菜单1:可用选项为“A”和“B”

下拉菜单2:可用选项

  • 如果在下拉菜单1中选择了“A”,则可用选项为“DC”和“NY”
  • 如果在下拉菜单1中选择了“B”,则可用选项为“B_DC”和“B_NY”

现在,根据下拉菜单中的输入,div部分中应显示某种输出(取决于输入)。例如,如果选择“B”和“B_NY”,则div部分可以包含消息“Options”B“和”B_NY“”。或者,如果选择“A”和“DC”,则div部分可能包含一个按钮(我选择此示例只是为了突出显示内容不仅仅是一般文本,如果这很重要)。

注意: stackoverflow上已经有一个非常类似的例子:

http://stackoverflow.com/questions/26389562/angular-show-div-content-depending-on-which-option-chosen-from-drop-down-menu/26389852#26389852

这个问题与我上面的问题相同(我也相应地选择了这个例子) - 唯一的区别是只有一个下拉菜单而不是两个。该线程中提供的解决方案也可以在Plunker上找到:

http://plnkr.co/edit/ziaxHOj53J6sePf6y6Qf?p=preview

我希望这个其他问题能让每个想要帮助我解决问题的人更容易。

提前谢谢!

1 个答案:

答案 0 :(得分:3)

举个例子:

<select class="form-control" ng-model="places1">
  <option>Choose Place</option>
  <option value="A">A</option>
  <option value="B">B</option>
</select>
<select class="form-control" ng-model="places2">
  <option>Choose Place</option>
  <option value="DC" ng-if="places1 == 'A'">DC</option>
  <option value="NY" ng-if="places1 == 'A'">NY</option>
  <option value="B_DC" ng-if="places1 == 'B'">B_DC</option>
  <option value="B_NY" ng-if="places1 == 'B'">B_NY</option>
</select>

<div ng-if="places1 == 'A' && places2 == 'DC'">A => DC</div>
<div ng-if="places1 == 'A' && places2 == 'NY'">A => NY</div>
<div ng-if="places1 == 'B' && places2 == 'B_DC'">B => B_DC</div>
<div ng-if="places1 == 'B' && places2 == 'B_NY'">B => B_NY</div>

工作示例:http://plnkr.co/edit/dx3A2GuymtswwEdJHotW?p=preview