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 Hack
Jul 24 Javascript
js 动态加载事件的几种方法总结
Dec 25 Javascript
jquery的each方法使用示例分享
Mar 25 Javascript
jQuery使用之处理页面元素用法实例
Jan 19 Javascript
html的DOM中Event对象onabort事件用法实例
Jan 21 Javascript
JS对HTML表格进行增删改操作
Aug 22 Javascript
深入理解javascript函数参数与闭包
Dec 12 Javascript
JavaScript字符串检索字符的方法
Jun 23 Javascript
vue cli3 配置proxy代理无效的解决
Oct 30 Javascript
vue 动态组件用法示例小结
Mar 06 Javascript
微信小程序实现左滑删除效果
Nov 18 Javascript
vscode自定义vue模板的实现
Jan 27 Vue.js
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
一个很不错的PHP翻页类
2009/06/01 PHP
关于php中一些字符串总结
2016/05/05 PHP
thinkPHP交易详情查询功能详解
2016/12/02 PHP
Yii2实现多域名跨域同步登录退出
2017/02/04 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
PHP date_default_timezone_set()设置时区操作实例分析
2020/05/16 PHP
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
Query中click(),bind(),live(),delegate()的区别
2013/11/19 Javascript
jquery图片轮播插件仿支付宝2013版全屏图片幻灯片
2014/04/03 Javascript
微信小程序 参数传递详解
2016/10/24 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
深入理解vue Render函数
2017/07/19 Javascript
微信小程序云开发之新手环境配置
2019/05/16 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
利用js实现简易红绿灯
2020/10/15 Javascript
[07:26]2015国际邀请赛第二日TOP10集锦
2015/08/06 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
对Python中plt的画图函数详解
2018/11/07 Python
python矩阵的转置和逆转实例
2018/12/12 Python
基于python使用tibco ems代码实例
2019/12/20 Python
工作中个人的自我评价
2013/12/31 职场文书
保安拾金不昧表扬信
2014/01/15 职场文书
三下乡活动方案
2014/01/31 职场文书
物业保安辞职信
2015/05/12 职场文书
酒店员工手册范本
2015/05/14 职场文书
驻村工作简报
2015/07/20 职场文书
2015年酒店销售部工作总结
2015/07/24 职场文书
小学安全教育主题班会
2015/08/12 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
《搭石》教学反思
2016/02/18 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js