javascript - 更改选择框中的数据

标签 javascript angularjs angularjs-forms

我的页面上有 3 个不同的选择框。如果我在第一个选择框中选择了一个选项,我希望第二个选择框中的选项更改为属于您在第一个选择框中选择的值的选项。

我想要第三个选择框也有同样的效果。如果我在第二个选择框中选择了一个选项,我希望第三个选择框中的选项更改为属于第二个选择框中的值的选项。

有什么建议如何在 AngularJS 中尽可能简单地做到这一点吗?

最佳答案

您可以通过将 ng-options 与 Angular 过滤器结合使用来实现此目的

Controller

angular.module('app', [])
  .controller('Ctrl', function($scope) {
    $scope.countries = {
      'India': {
        'Andhra Pradesh': ['Vijayawada', 'Guntur', 'Nellore', 'Kadapa'],
        'Madhya Pradesh': ['Hyderabad', 'Warangal', 'Karimnagar'],
      },
      'USA': {
        'San Francisco': ['SOMA', 'Richmond', 'Sunset'],
        'Los Angeles': ['Burbank', 'Hollywood']
      },
      'Australia': {
        'New South Wales': ['Sydney', 'Orange', 'Broken Hill'],
        'Victoria': ['Benalla', 'Melbourne']
      }
    };
  })

标记

 <div ng-controller="Ctrl">
    <div class="container">>
      <div class="form-group">
        <label class="control-label" for="Country">Country:</label>
        <select class="form-control input-lg" id="country" ng-model="states" ng-options="country for (country, states) in countries">
          <option value=''>Select</option>
        </select>
      </div>
      <div class="form-group">
        <label class="control-label" for="States">States:</label>
        <select class="form-control input-lg" id="state" ng-disabled="!states" ng-model="cities" ng-options="state for (state,city) in states">
          <option value=''>Select</option>
        </select>
      </div>
      <div class="form-group">
        <label class="control-label" for="City">City:</label>
        <select class="form-control input-lg" id="city" ng-disabled="!cities || !states" ng-model="city" ng-options="city for city in cities">
          <option value=''>Select</option>
        </select>
      </div>
    </div>
  </div>

Working Plunkr

关于javascript - 更改选择框中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29621260/

相关文章:

c# - 未调用 Jquery Ajax 成功函数

angularjs - simpleLoginTool 在我尝试注册新用户时给我 "Error: The specified authentication type is not enabled for this Firebase"

javascript - 两个闭包有什么区别?

html - Angular 形式在表格中不起作用

javascript - Angular 2/4/6 : how to update the scss dynamically

javascript - 如何像在 javascript 中一样在 html 中嵌入 groovy 脚本?

angularjs - 如何在 AngularJS 中制作饼图

javascript - Angular 验证中的登录页面重定向

angularjs - 当所有输入都是空白时,Angular 表单是 $valid,为什么?

javascript - Google map V3 身份验证和重复问题