Angular js, on ng-change如何更新其他select控件的选项


Angular js, on ng-change how to update options of other select control

在更改年份值时,我想更改Make下拉的选项,但不知道如何更新其他控件的选项。

下面是我的柱塞形式。https://plnkr.co/edit/aV65Nab9U9I6YlK2g4sY?p=preview
api.php是服务器响应,这些选项应该显示在Make下拉菜单中,以更改年份。

autoQuoteCtrl.js

$scope.updateMakeList = function(){
}

index . html

 <div class="row">
                    <div class="form-group">
                        <label class="col-sm-5 control-label" for="PC">{{questions[$state.current.name].VehicleYear.QuestionData._text}}</label>
                        <div class="col-sm-6">
                            <select ng-change="updateMakeList" custom-required="true" ng-options="answers._value as ans._promptText for ans in questions[$state.current.name].VehicleYear.QuestionData._answerOptions" ng-model="answerswers.VehicleYear" ng-required="queObj._required" class="form-control {{queObj._pageAttributes.cssclass}}" name="{{questions[$state.current.name].VehicleYear.QuestionData._attributeName}}" id="{{questions[$state.current.name].VehicleYear.QuestionData._attributeName}}" data-que-obj="questions[$state.current.name].VehicleYear.QuestionData" select-control-dir setMake custom-required></select>
                        </div>                    
                    </div>
                    <span class="form-error" ng-show="submitted && DTOstep1.VehicleYear.$error.required">This field is required.</span>
                </div>

你需要把这个函数放到你的控制器中-

    $scope.updateMakeList = function(name)
                    {                
// Your logic to change value in Make dropdown
$scope.questions[name].VehicleMake.QuestionData._answerOptions = [{'_value':"test",'_promptText':"Test"}];
                    }

更新你的HTML(年份选择框)-

            <div class="form-group">
                <label class="col-sm-5 control-label" for="PC">{{questions[$state.current.name].VehicleYear.QuestionData._text}}</label>
                <div class="col-sm-6">
                    <select ng-change="updateMakeList($state.current.name)" custom-required="true" ng-options="answers._value as ans._promptText for ans in questions[$state.current.name].VehicleYear.QuestionData._answerOptions" ng-model="answerswers.VehicleYear" ng-required="queObj._required" class="form-control {{queObj._pageAttributes.cssclass}}" name="{{questions[$state.current.name].VehicleYear.QuestionData._attributeName}}" id="{{questions[$state.current.name].VehicleYear.QuestionData._attributeName}}" data-que-obj="questions[$state.current.name].VehicleYear.QuestionData" select-control-dir setMake custom-required></select>
                </div>                    
            </div>