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之bind使用介绍
Oct 09 Javascript
table对象中的insertRow与deleteRow使用示例
Jan 26 Javascript
javascript中实现兼容JAVA的hashCode算法代码分享
Aug 11 Javascript
基于jQuery实现网页进度显示插件
Mar 04 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
Aug 01 Javascript
AngularJS  双向数据绑定详解简单实例
Oct 20 Javascript
angular1配合gulp和bower的使用教程
Jan 19 Javascript
JS数组去重的6种方法完整实例
Dec 08 Javascript
vue watch关于对象内的属性监听
Apr 22 Javascript
JavaScript实现简单随机点名器
Nov 21 Javascript
js实现中文实时时钟
Jan 15 Javascript
vue项目在线上服务器访问失败原因分析
Aug 14 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
php 动态多文件上传
2009/01/18 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
PHP的mysqli_ssl_set()函数讲解
2019/01/23 PHP
PHP PDOStatement::fetch讲解
2019/01/31 PHP
JavaScript Archive Network 集合
2007/05/12 Javascript
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
使用jQuery获取data-的自定义属性
2015/11/10 Javascript
BootStrap网页中代码显示用法详解
2016/10/21 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
vue2.0父子组件间通信的实现方法
2017/04/19 Javascript
利用pm2部署多个node.js项目的配置教程
2017/10/22 Javascript
vue中如何使用ztree
2018/02/06 Javascript
深入理解 TypeScript Reflect Metadata
2019/12/12 Javascript
python修改注册表终止360进程实例
2014/10/13 Python
python版本单链表实现代码
2018/09/28 Python
Django组件之cookie与session的使用方法
2019/01/10 Python
Python自定义一个类实现字典dict功能的方法
2019/01/19 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
python实现连连看辅助(图像识别)
2020/03/25 Python
python爬取盘搜的有效链接实现代码
2019/07/20 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
英国快时尚女装购物网站:PrettyLittleThing
2018/08/15 全球购物
可持续未来的时尚基础:Alternative Apparel
2019/05/06 全球购物
建筑项目策划书
2014/01/13 职场文书
项目考察欢迎辞
2014/01/17 职场文书
乡镇消防工作实施方案
2014/03/27 职场文书
承诺书的格式范文
2014/03/28 职场文书
门店店长岗位职责
2015/04/14 职场文书
高考1977观后感
2015/06/04 职场文书
工作后的感想
2015/08/07 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
如何用 Python 子进程关闭 Excel 自动化中的弹窗
2021/05/07 Python