Javascript 角度传感器中的级联下拉列表

Javascript 角度传感器中的级联下拉列表,javascript,angularjs,Javascript,Angularjs,我试图在angular中获得一些级联下拉列表,这些下拉列表是基于上一个下拉列表所选择的内容填充的。因此,基本上总共有5个下拉列表,首先只填充第一个下拉列表,然后第二个下拉列表将根据第一个下拉列表中拾取的内容进行填充(希望使用$http从服务器上获取新信息,根据拾取的内容),以此类推,一直到5 所以基本上我有: <select class="selectScope" ng-model="scope1"> <option ng-rep

我试图在angular中获得一些级联下拉列表,这些下拉列表是基于上一个下拉列表所选择的内容填充的。因此,基本上总共有5个下拉列表,首先只填充第一个下拉列表,然后第二个下拉列表将根据第一个下拉列表中拾取的内容进行填充(希望使用$http从服务器上获取新信息,根据拾取的内容),以此类推,一直到5

所以基本上我有:

<select class="selectScope" ng-model="scope1">
                        <option ng-repeat="obj in array" value="{{obj.id}}">{{obj.name}}</option>
                    </select>
                    <select class="selectLevel1" ng-model="scope2">
                        <option ng-repeat="obj in array" value="{{obj.id}}">{{obj.name}}</option>
                    </select>
                    <select class="selectLevel2" ng-model="scope3">
                        <option ng-repeat="obj in array" value="{{obj.id}}">{{obj.name}}</option>
                    </select>
                    <select class="selectLevel3" ng-model="scope4">
                        <option ng-repeat="obj in array" value="{{obj.id}}">{{obj.name}}</option>
                    </select>
                    <select class="selectLevel4" ng-model="scope5">
                        <option ng-repeat="obj in array" value="{{obj.id}}">{{obj.name}}</option>
                    </select>

{{obj.name}
{{obj.name}
{{obj.name}
{{obj.name}
{{obj.name}

我将用$http填充第一个下拉列表,但不详细说明,我只是想知道是否可以让下拉列表彼此触发。如果我一直选择到第5级,然后重新选择第3级,那么第4级和第5级将为空(第4级将根据第3级中选择的内容重新填充)。所以我只想让他们彼此合作。我想知道这样的事情在美国是否可行。抱歉,如果这是一个有点健忘,我是全新的使用角度。谢谢

首先,您应该使用
ng选项
而不是ng重复

<select ng-model='scope1' ng-change='scope1Change()' 
        ng-options='obj.id as obj.name for obj in array'>
</select>
可以根据之前选择的值禁用其他select语句

<select class="selectLevel1" ng-model="scope2" 
        ng-options='obj.id as obj.name for obj in array2' ng-disabled='!scope1'>
</select>


您需要在更改事件中添加一些逻辑,以确定是否应根据需要清除
$scope
模型值,但这非常简单

啊,太棒了,angular太棒了。谢谢你的帮助!!在进行$http调用时,您应该将服务作为最佳实践。为了简洁起见,我刚刚将它们包含在控制器中
<select class="selectLevel1" ng-model="scope2" 
        ng-options='obj.id as obj.name for obj in array2' ng-disabled='!scope1'>
</select>