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 相关文章推荐
juqery 学习之六 CSS--css、位置、宽高
Feb 11 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
Jul 25 Javascript
js格式化货币数据实现代码
Sep 04 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
Sep 21 Javascript
Underscore.js常用方法总结
Feb 28 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
Oct 16 Javascript
JS使用onerror捕获异常示例
Aug 03 Javascript
老生常谈combobox和combotree模糊查询
Apr 17 Javascript
详解axios在vue中的简单配置与使用
May 10 Javascript
关于微信小程序登录的那些事
Jan 08 Javascript
vue 插件的方法代码详解
Jun 06 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
php 中的str_replace 函数总结
2007/04/27 PHP
php源代码安装常见错误与解决办法分享
2013/05/28 PHP
Linux系统下PHP-FPM的安装和配置教程
2015/08/17 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
jquery ui dialog实现弹窗特效的思路及代码
2013/08/03 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
实例详解jQuery表单验证插件validate
2016/01/18 Javascript
Vuejs入门教程之Vue生命周期,数据,手动挂载,指令,过滤器
2017/04/19 Javascript
Express框架之connect-flash详解
2017/05/31 Javascript
用Vue-cli搭建的项目中引入css报错的原因分析
2017/07/20 Javascript
layui结合form,table的全选、反选v1.0示例讲解
2018/08/15 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
Vue中使用Lodop插件实现打印功能的简单方法
2019/12/19 Javascript
[01:32]TI珍贵瞬间系列(一)
2020/08/26 DOTA
Python pickle模块用法实例分析
2015/05/27 Python
机器学习之KNN算法原理及Python实现方法详解
2018/07/09 Python
详解Python3中的迭代器和生成器及其区别
2018/10/09 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
Python中模块(Module)和包(Package)的区别详解
2019/08/07 Python
Python装饰器原理与基本用法分析
2020/01/07 Python
医学院四年学习生活的自我评价
2013/11/06 职场文书
高中自我评价分享
2013/12/05 职场文书
小学教师师德反思
2014/02/03 职场文书
《再见了,亲人》教学反思
2014/02/26 职场文书
旅游与酒店管理专业求职信
2014/07/21 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
关于成立领导小组的通知
2015/04/23 职场文书
看上去很美观后感
2015/06/10 职场文书
初中数学课堂教学反思
2016/02/17 职场文书
创业计划书之蛋糕店
2019/08/29 职场文书
详解Vue的options
2021/05/15 Vue.js
CSS Transition通过改变Height实现展开收起元素
2021/08/07 HTML / CSS
Python 第三方库 openpyxl 的安装过程
2022/12/24 Python