Angularjs 根据一个select的值去设置另一个select的值方法


Posted in Javascript onAugust 13, 2018

html:

<div ng-controller="mySelectController">
<select ng-model="myField" ng-options="Field.label for Field in names" 
ng-change="mySelectControllerChange()">
<option value=''>{{'SELECT.LABEL.VXI.CUSTOM.SELECT' | translate}}</option>
</select>
</div>
 <div ng-controller="myRelationController">
<select ng-model="myRelation" ng-options="relation.name for relation in relationList" >
<option value=''>{{'SELECT.LABEL.VXI.CUSTOM.SELECT' | translate}}</option>
</select>
</div>

js:

var mySelectController=['$scope', '$http', '$rootScope', function($scope, $http, $rootScope) {
 
 //$http的method可以是get/delete/head/jsonp/post/put
 //$http服务快捷的get请求
 //alert('root=='+ACTIVITI.CONFIG.contextRoot);//对应/activiti-explorer/service
 $http({
 method:'PUT',
 url:ACTIVITI.CONFIG.contextRoot +'/getFormFieldList'
 })
 .success(
 function(data,status,headers,config){
 //成功加载
   $scope.names=data;
 })
 .error(
 
 function(data,status,headers,config){
 //处理错误
 //do nothing
 }
 );
 //change
 $scope.mySelectControllerChange=function(){
 var app=angular.module('activitiModeler',[]);
 if($scope.myField.optionGroupId!=null && $scope.myField.optionGroupId!=''){
 //有optionGroup
 console.log('if');
 $rootScope.relationList = [{id:0,name:'等于'},{id:1,name:'不等于'},{id:2,name:'包含'}];
 }else{
 //没有optionGroup
 console.log('else');
 $rootScope.relationList = [{id:0,name:'等于'},{id:3,name:'大于'},{id:4,name:'小于'},{id:5,name:'小于等于'},{id:6,name:'大于等于'},{id:2,name:'包含'}];
 }
 
 }
 
}
];

//AngularJS $emit $broadcast $on

//change
 $scope.mySelectControllerChange=function(){
 var data=null;
 if(null==$scope.myColumnSelectModel){
 data={
  pa:'',
  pb:''
 };
 }else{
 data={
  pa:$scope.myColumnSelectModel,
  pb:$scope.myColumnSelectModel.optionGroupId
 };
 }
 $scope.$emit('to_myParentController_on_myColumnSelectModel_change',data);
 }
 
/*myParentController*/
angular.module('activitiModeler').controller('myParentController',['$rootScope', '$scope', '$http', '$timeout','$window', function ($rootScope, $scope, $http, $timeout,$window) {
 //选择字段下拉列表,触发关系符下拉
 $scope.$on('to_myParentController_on_myColumnSelectModel_change',function(event,data){
 $scope.$broadcast('to_myRelationController_on_myColumnSelectModel_change',data);
 });
 
 
}]);
 
/*关系符*/
angular.module('activitiModeler').controller('myRelationController',['$rootScope', '$scope', '$http', '$timeout','$window', function ($rootScope, $scope, $http, $timeout,$window) {
 $scope.myRelationDisableVar=true;
 $scope.objDisableTrue=true;//加上灰背景
 //接收事件-根据字段显示下拉
 $scope.$on('to_myRelationController_on_myColumnSelectModel_change',function(event,data){
 if(data.pa!=''){
 $scope.myRelationDisableVar=false;
 $scope.objDisableTrue=false;//去掉灰背景
 if(data.pb!=null && data.pb!=''){
 //有optionGroup
 $scope.relationList = [{id:0,name:'等于'},{id:1,name:'不等于'},{id:2,name:'包含'}];
 }else{
 //没有optionGroup
 $scope.relationList = [{id:0,name:'等于'},{id:3,name:'大于'},{id:4,name:'小于'},{id:5,name:'小于等于'},{id:6,name:'大于等于'},{id:2,name:'包含'}];
 }
 }else{
 $scope.relationList=null;
 $scope.myRelationDisableVar=true;
 $scope.objDisableTrue=true;//加上灰背景
 }
 
 });
 
}]);

以上这篇Angularjs 根据一个select的值去设置另一个select的值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
如何在标题栏显示框架内页面的标题
Feb 03 Javascript
javascript ajax 仿百度分页函数
Oct 29 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
Feb 19 Javascript
jQuery实现tab选项卡效果的方法
Jul 08 Javascript
js实现登录验证码
Dec 22 Javascript
基于Datatables跳转到指定页的简单实例
Nov 09 Javascript
Vue 自定义动态组件实例详解
Mar 28 Javascript
浅谈vue项目可以从哪些方面进行优化
May 05 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
Sep 10 Javascript
vue返回上一页面时回到原先滚动的位置的方法
Dec 20 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
Jul 20 Javascript
vue-cli 关闭热更新操作
Sep 18 Javascript
AngularJS中ng-options实现下拉列表的数据绑定方法
Aug 13 #Javascript
JavaScript面向对象程序设计创建对象的方法分析
Aug 13 #Javascript
vue.js template模板的使用(仿饿了么布局)
Aug 13 #Javascript
angularjs 动态从后台获取下拉框的值方法
Aug 13 #Javascript
vue2.0 中使用transition实现动画效果使用心得
Aug 13 #Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
Aug 13 #Javascript
jQuery实现图片简单轮播功能示例
Aug 13 #jQuery
You might like
第五节--克隆
2006/11/16 PHP
smarty简单分页的实现方法
2014/10/27 PHP
详解PHP序列化反序列化的方法
2015/10/27 PHP
win7安装php框架Yii的方法
2016/01/25 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
Jquery事件的连接使用示例
2013/06/18 Javascript
JavaScript 表单处理实现代码
2015/04/13 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
完美实现js选项卡切换效果(二)
2017/03/08 Javascript
JS实现的二叉树算法完整实例
2017/04/06 Javascript
JavaScript中import用法总结
2019/01/20 Javascript
基于JS开发微信网页录音功能的实例代码
2019/04/30 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python while 循环使用的简单实例
2016/06/08 Python
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Python+Redis实现布隆过滤器
2019/12/08 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
移动端Html5页面生成图片解决方案
2018/08/07 HTML / CSS
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
机械设计制造专业个人求职信
2013/09/25 职场文书
中专生毕业自我鉴定
2013/11/01 职场文书
大学生职业生涯规划书范文
2014/01/04 职场文书
教师年度考核自我鉴定
2014/01/19 职场文书
《临死前的严监生》教学反思
2014/02/13 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
小学教师岗位职责
2015/04/02 职场文书
2015年纪委工作总结
2015/05/13 职场文书
JavaWeb Servlet实现网页登录功能
2021/07/04 Java/Android
Python干货实战之八音符酱小游戏全过程详解
2021/10/24 Python
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android