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 相关文章推荐
来自国外的14个图片放大编辑的jQuery插件整理
Oct 20 Javascript
js判断iframe内的网页是否滚动到底部触发事件
Mar 18 Javascript
简述JavaScript的正则表达式中test()方法的使用
Jun 16 Javascript
JQuery标签页效果的两个实例讲解(4)
Sep 17 Javascript
js中class的点击事件没有效果的解决方法
Oct 13 Javascript
ajax异步请求详解
Jan 06 Javascript
js实现网页的两个input标签内的数值加减(示例代码)
Aug 15 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
Apr 25 Javascript
Electron + vue 打包桌面操作流程详解
Jun 24 Javascript
vue中watch和computed的区别与使用方法
Aug 23 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
Nov 02 Javascript
JS前端使用canvas实现物体的点选示例
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/03 冲泡冲煮
PHP json_decode函数详细解析
2014/02/17 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
Laravel 解决composer相关操作提示php相关异常的问题
2019/10/23 PHP
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
Node.js实战 建立简单的Web服务器
2012/03/08 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
jQuery lazyLoad图片延迟加载插件的优化改造方法分享
2013/08/13 Javascript
弹出最简单的模式化遮罩层的js代码
2013/12/04 Javascript
jQuery实现回车键(Enter)切换文本框焦点的代码实例
2014/05/05 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
TypeError document.getElementById(...) is null错误原因
2015/05/18 Javascript
IE浏览器下PNG相关功能
2015/07/05 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
用js写的一个路由(简单实例)
2016/09/24 Javascript
webpack4之SplitChunksPlugin使用指南
2018/06/12 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
2019/12/10 Javascript
微信小程序实现限制用户转发功能的实例代码
2020/02/22 Javascript
vue实现编辑器键盘抬起时内容跟随光标距顶位置向上滚动效果
2020/05/28 Javascript
简单介绍Python的Django框架加载模版的方式
2015/07/20 Python
对python .txt文件读取及数据处理方法总结
2018/04/23 Python
Python八大常见排序算法定义、实现及时间消耗效率分析
2018/04/27 Python
python批量修改文件编码格式的方法
2018/05/31 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
Django之编辑时根据条件跳转回原页面的方法
2019/08/21 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
HTML5 Web缓存和运用程序缓存(cookie,session)
2018/01/11 HTML / CSS
美国女孩洋娃娃店:American Girl
2017/10/24 全球购物
Interflora澳大利亚:同日鲜花速递
2019/06/25 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
外贸业务员求职信范文
2013/12/12 职场文书
工程承诺书怎么写
2014/05/24 职场文书
2014年效能监察工作总结
2014/11/21 职场文书
三年级作文之小小梦想
2019/12/06 职场文书
pandas 实现将NaN转换为None
2021/05/14 Python