angularjs 动态从后台获取下拉框的值,只要是使用repeat指令,后台提供的是一个list的对象,里面包含value和显示的值,如下:
js文件:
//职务等级和档次/军衔等级和档次,需要从后台获取:poslist,type:2/3/4/5
$scope.getDyActivityInforItems=function(){
serviceData.getData('inforinput/getAllSelectValueByType','POST',{
type:2
}).then(function(json){
if(json.code==0){
$scope.poslist=json.content;
};
}, function(json){
console.log(json);
});
};
界面:
<!-- 空格空开来区分职务等级 -->
<div class="item" style="border-top: 1px solid #ddd;padding-top: 2px;">
<label class="list_tit">职务等级</label>
<div class="item_input" ng-init="getDyActivityInforItems()">
<!-- <select class="fillIn select-able" ng-model="item" ng-options="item as y for y in addInfo.posList" id="dutLevel_view_1" name="dutLevel">
</select> -->
<select class="fillIn select-able" ng-model="selectedPos" id="dutLevel_view_1" name="dutLevel">
<option ng-repeat="x in poslist" value="{{x.select_code}}">{{x.select_name}}</option>
</select>
<span class="imp_list_rema">*</span>
<!--
<select class="fillIn select-able" ng-model="addInfo.addInfoView.positionRank" >
<option value="" selected>请选择</option>
</select> -->
</div>
</div>
=================================分割线,2017年7月20日17:07:14-===================================
后面遇到一个问题,当新增了一个下拉选项,需要刷新了下拉的list,但就会默认显示第一个,没有获取刚开始显示界面的值,需要使用apply进行更新:
addInfo.addInfoView.positionRank=0;
$scope.poslist=json.content;
setTimeout(function() {
$scope.$apply(function() {
addInfo.addInfoView.positionRank=yuanPos;
});
}, 1000);
html上:
<!-- 空格空开来区分职务等级 -->
<div class="item" style="border-top: 1px solid #ddd;padding-top: 2px;">
<label class="list_tit">职务等级</label>
<div class="item_input" ng-init="getPosMilSelectValue()">
<select class="fillIn select-able" ng-selected="addInfo.addInfoView.positionRank" ng-model="addInfo.addInfoView.positionRank" id="dutLevel_view_1" name="dutLevel">
<option ng-repeat="x in poslist" value="{{x.select_code}}">{{x.select_name}}</option>
</select>
<span class="imp_list_rema">*</span>
<span style="background:#3cb671;margin-left:20px;height:17px;width:20px" ng-click="addInfo.viewInput_add_item=!addInfo.viewInput_add_item;addInfo.addItemName='';selectType=2">
<a style="margin-left:7px;margin-top:2px" href="javascript:;" title=""> + </a></span>
</div>
</div>