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 相关文章推荐
js几个不错的函数 $$()
Oct 09 Javascript
锋利的jQuery 第三章章节总结的例子
Mar 23 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
Apr 02 Javascript
jQuery里filter()函数与find()函数用法分析
Jun 24 Javascript
微信小程序-图片、录音、音频播放、音乐播放、视频、文件代码实例
Nov 22 Javascript
JS身份证信息验证正则表达式
Jun 12 Javascript
vuex的使用及持久化state的方式详解
Jan 23 Javascript
Vue中使用clipboard实现复制功能
Sep 05 Javascript
vue+element模态框中新增模态框和删除功能
Jun 11 Javascript
Vue 中使用 typescript的方法详解
Feb 17 Javascript
原生js实现日期选择插件
May 21 Javascript
JS异步宏队列与微队列原理区别详解
Jul 02 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
239军机修复记
2021/03/02 无线电
PHP 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
jQuery学习笔记之jQuery动画效果
2013/09/09 Javascript
javascript操作css属性
2013/12/30 Javascript
jquery选择器之内容过滤选择器详解
2014/01/27 Javascript
常用的JavaScript模板引擎介绍
2015/02/28 Javascript
javascript实现图片自动和可控的轮播切换特效
2015/04/13 Javascript
JavaScript实现鼠标滑过处生成气泡的方法
2015/05/16 Javascript
JavaScript函数节流概念与用法实例详解
2016/06/20 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
dul无法加载bootstrap实现unload table/user恢复
2016/09/29 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
vue2.0结合DataTable插件实现表格动态刷新的方法详解
2017/03/17 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
2017/12/19 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
详解vue项目中实现图片裁剪功能
2019/06/07 Javascript
vue 表单输入框不支持focus及blur事件的解决方案
2020/11/17 Vue.js
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
pygame学习笔记(6):完成一个简单的游戏
2015/04/15 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
Python多进程方式抓取基金网站内容的方法分析
2019/06/03 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
实例教程 一款纯css3实现的数字统计游戏
2014/11/10 HTML / CSS
运动会广播稿200米
2014/01/27 职场文书
寄语十八大感言
2014/02/07 职场文书
JavaScript中的LHS和RHS分析详情
2022/04/06 Javascript
python小型的音频操作库mp3Play
2022/04/24 Python