ng-model选择下拉列表更新 - angular

时间:2017-02-20 09:02:19

标签: javascript angularjs javascript-objects

基本上我有一个选择下拉列表

<select class="form-control" id="ursel"
        ng-change="changeVal()"
        ng-options="a for a in RatedVoltage" data-ng-model="TechCharacters.selectedUr">
        <option value="" selected="selected">{{globalLangResource.SelectAny}}</option>
</select>

因此,在更改此选择时,将结果反映到另一个选择

viewModel.changeVal = function(){
    var val = viewModel.TechCharacters.selectedUr; 
    if (val != undefined && val === "7.2kV") {
        $rootScope.ud = viewModel.InsulationVoltage["7.2kV"];  // 20,30,40  
    }
}

第二个下拉列表看起来像这样

<select class="form-control" id="udsel"
        ng-change="setUd();"
        ng-options="a for a in ud" data-ng-model="TechCharacters.InsulVolt">
       <option value="" ng-if="false"></option>
</select>

现在我有一个提交按钮,在提交时,我正在获取主要对象。

console.log(TechCharacters);

这里我没有获得TechCharacters.InsulVolt价值。它显示为空。

如果我更改了第二个下拉列表,则model会更新。在那之前,我没有从第一次下拉列表中获得更改的模型

基本上我想要表格中的所有ng-model值,即使它已被更改。

2 个答案:

答案 0 :(得分:2)

你实际上可以做到这一点。这将有效。

<select data-ng-model="TechCharacters.selectedUr"
    <option ng-selected="{{obj == TechCharacters.selectedUr}}" value="{{obj}}" ng-repeat="(key,value) in RatedVoltage">
</select>

基本上您正在执行ng-selected并将ng-model值与ng repeat值进行比较,并显示所选值。

答案 1 :(得分:1)

如果你想要第一个改变第二个下拉列表的第一个对象。将代码更改为。

viewModel.changeVal = function(){
    var val = viewModel.TechCharacters.selectedUr; 
    if (val != undefined && val === "7.2kV") {
        $rootScope.ud = viewModel.InsulationVoltage["7.2kV"];  // 20,30,40  
        viewModel.TechCharacters.InsulVolt=$rootScope.ud[0]
    }
}

希望它会帮助你