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 相关文章推荐
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
Jan 22 Javascript
js实现的日期操作类DateTime函数代码
Mar 16 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
Apr 26 Javascript
Jquery通过JSON字符串创建JSON对象
Aug 24 Javascript
javascript文本框内输入文字倒计数的方法
Feb 24 Javascript
深入浅析JavaScript中对事件的三种监听方式
Sep 29 Javascript
Jquery和JS获取ul中li标签的实现方法
Jun 02 Javascript
详解使用nvm管理多版本node的方法
Aug 30 Javascript
详解vue项目接入微信JSSDK的坑
Dec 14 Javascript
js中int和string数据类型互相转化实例
Jan 16 Javascript
微信小程序复选框实现多选一功能过程解析
Feb 14 Javascript
详解vue路由
Aug 05 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
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
实例讲解PHP面向对象之多态
2014/08/20 PHP
基于JQuery的asp.net树实现代码
2010/11/30 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
2013/07/04 Javascript
js setTimeout 参数传递使用介绍
2013/08/13 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
nodejs开发环境配置与使用
2014/11/17 NodeJs
浅谈如何实现easyui的datebox格式化
2016/06/12 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
作为老司机使用 React 总结的 11 个经验教训
2017/04/08 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
vscode中eslint插件的配置(prettier配置无效)
2019/09/10 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
关于AngularJS中几种Providers的区别总结
2020/05/17 Javascript
vue-router之解决addRoutes使用遇到的坑
2020/07/19 Javascript
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
python基础教程之匿名函数lambda
2017/01/17 Python
使用Python从零开始撸一个区块链
2018/03/14 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
Django 自定义分页器的实现代码
2019/11/24 Python
python之列表推导式的用法
2019/11/29 Python
浅析python标准库中的glob
2020/03/13 Python
Python如何实现邮件功能
2020/05/27 Python
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
在校硕士自我鉴定
2014/01/23 职场文书
师范学院教师自荐书
2014/01/31 职场文书
文明单位创建材料
2014/12/24 职场文书
2015年度绩效考核工作总结
2015/05/27 职场文书
关于法制教育的宣传语
2015/07/13 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
python基于turtle绘制几何图形
2021/06/15 Python
Netflix《海贼王》真人版剧集多张片场照曝光
2022/04/04 日漫