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 相关文章推荐
javascript之解决IE下不渲染的bug
Jun 29 Javascript
说说JSON和JSONP 也许你会豁然开朗
Sep 02 Javascript
JS中的prototype与面向对象的实例讲解
May 22 Javascript
javascript截取字符串(通过substring实现并支持中英文混合)
Jun 24 Javascript
js的各种排序算法实现(总结)
Jul 23 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
Nov 09 Javascript
JS出现失效的情况总结
Jan 20 Javascript
深入理解JavaScript中的for循环
Feb 07 Javascript
关于TypeScript模块导入的那些事
Jun 12 Javascript
解决JavaScript layui 下拉框不显示的问题
Aug 14 Javascript
vue-router重定向和路由别名的使用讲解
Jan 19 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
Nov 25 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
德生PL330的评价与改造
2021/03/02 无线电
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
解决Codeigniter不能上传rar和zip压缩包问题
2014/03/07 PHP
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
浅谈php和js中json的编码和解码
2016/10/24 PHP
jQuery ajax cache缓存问题
2010/07/01 Javascript
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
js中运算符&amp;&amp; 和 || 的使用记录
2014/08/21 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
详解vue数据渲染出现闪烁问题
2017/06/29 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
2018/05/13 Javascript
浅谈Angularjs中不同类型的双向数据绑定
2018/07/16 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
[30:55]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第二场 11.18
2020/11/18 DOTA
Python制作CSDN免积分下载器
2015/03/10 Python
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
Python实现基本数据结构中栈的操作示例
2017/12/04 Python
scrapy spider的几种爬取方式实例代码
2018/01/25 Python
Flask框架URL管理操作示例【基于@app.route】
2018/07/23 Python
Python查找数组中数值和下标相等的元素示例【二分查找】
2019/02/13 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
对Python中小整数对象池和大整数对象池的使用详解
2019/07/09 Python
Python pathlib模块使用方法及实例解析
2020/10/05 Python
总结python 三种常见的内存泄漏场景
2020/11/20 Python
菲律宾领先的在线时尚商店:Zalora菲律宾
2018/02/08 全球购物
英国复古服装和球衣购买网站:3Retro Football
2018/07/09 全球购物
外企C语言笔试题
2013/11/10 面试题
《鸟的天堂》教学反思
2014/02/27 职场文书
医生个人自我剖析材料
2014/10/08 职场文书
2014年打非治违工作总结
2014/11/13 职场文书
职场干货:简历中的自我评价应该这样写!
2019/05/06 职场文书
2019入党申请书范文3篇
2019/08/21 职场文书
jquery插件实现悬浮的菜单
2021/04/24 jQuery