Angularjs下拉联动(2)
时间:2022-07-23
本文章向大家介绍Angularjs下拉联动(2),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
上次联动的代码是在网上看到的,可能无法实现我的要求 这次是根据后台要求,自己写的一个联动,当然没有请求接口,就是单独写个固定值 演示地址:http://runjs.cn/detail/dta6edch 演示只提供了第一个选项的联动,后面没写,最后的属性“开关”和“温度”都写了,为了突出不同
1.联动的思路
- 1.首先是选择总类别
- 2.总类别选择后,会关联出设备
- 3.设备选择后,会关联出属性
- 4.属性选择后,会根据属性的不同,关联出不同的项目
2.代码
1)设备类别下拉
html
<select ng-model="devicetype" ng-options="x.category for x in devices" ng-change="changeType(devicetype)">
<option value="">--设备--</option>
</select>
js
$scope.devices = [
{"category":"大家电"},
{"category":"红外感应"},
{"category":"监控"},
{"category":"灯光"},
]
// 根据大类来获取设备列表
$scope.changeType = function(x){
$log.log(x.category)
//TODO: 真正使用肯定是要用$http来请求设备列表
//暂时测试使用下面的
switch(x.category){
case "大家电":
$scope.yourdevices = [
{"dev":"电视机(mac:32309fsaf)"},
{"dev":"洗衣机(mac:32309fsaf)"},
{"dev":"冰箱(mac:32309dqsq)"},
{"dev":"空调(mac:32309fsaf)"}
];
break;
}
}
2)设备下拉
html
<select ng-model="yourdevice" ng-options="x.dev for x in yourdevices" ng-change="changeDev(yourdevice)">
<option value="">--你的设备--</option>
</select>
js
$scope.changeDev = function (x) {
$log.log(x.dev)
switch (x.dev) {
case '电视机(mac:32309fsaf)':
$scope.params = [
{
'display_name': '开关',
'data_type': 'bool',
'data_range': [ '开','关']
},
{
'display_name': '温度',
'data_type': 'num',
'data_range': [30]
}
]
//此处将json转换成对象,方便下面的属性相关操作,例如“开关”属性,要找去其相关的类型数据和值
var paramsarr = $scope.params;
var paramobj = {
};
paramsarr.forEach(function (v, i) {
paramobj[v.display_name] = v;
})
$scope.paramobjs = paramobj;
}
}
3)属性下拉
html
<select ng-model="param" ng-options="p.display_name for p in params" ng-change="changeParam(param.display_name)">
<option value="">--属性--</option>
</select>
js
//获取数据类型和数据值
$scope.changeParam = function (x) {
var pobj = $scope.paramobjs;
$scope.views = pobj[x];
$scope.type = $scope.views.data_type
$log.log($scope.views)
}
4)属性项
html
使用ng-swtch来进行判断显示,若数值类型位bool,则显示单选框,若数值类型位num,则显示位大小比较下拉框和文本框
<div ng-switch="type">
<div ng-switch-when="bool" style="margin: -20px auto auto 90px;">
<label ng-repeat="x in views.data_range">
<input type="radio" name="radio" value="{{x}}">{{x}}
</label>
</div>
<div ng-switch-when="num" style="margin: -20px auto auto 90px;">
<select ng-model="compare">
<option value="0"><</option>
<option value="1">=</option>
<option value="2">></option>
</select>
{{views.data_range}}
<input type="text">
</div>
</div>
3.实现效果
- 配置不同环境下启用swagger,在生产环境关闭swagger
- 使用ControllerAdvice注意事项,Ambiguous @ExceptionHandler method mapped for [class org.springframework.web.
- rac节点无法启动ORA-29702的问题及分析(70天)
- SpringMVC,SpringBoot文件下载
- SpringCloud学习1-服务注册与发现(Eureka)
- 物化视图全量刷新与insert的redo生成量测试(69天)
- SpringCloud学习2-Springboot监控模块(actuator)
- 原码,反码,补码 与(&) 或(|) 非(~) 异或(^) 左移 << 右移 >> 无符号右移 >>>
- lombok使用基础教程
- 【Android基础】Android中的Intent详解
- 关于SCN的总结测试 (68天)
- 利用主成分分析构建股票指数
- Java对象的序列化和反序列化源码阅读
- hexo 博客支持PWA和压缩博文
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 详解Java解析XML的四种方法
- 《Java从入门到失业》第四章:类和对象(4.6):类路径
- 《Java从入门到失业》第四章:类和对象(4.5):包
- 《Java从入门到失业》第四章:类和对象(4.4):方法参数及传递
- 《Java从入门到失业》第四章:类和对象(4.3):一个完整的例子带你深入类和对象
- 《Java从入门到失业》第四章:类和对象(4.2):String类
- 《Java从入门到失业》第三章:基础语法及基本程序结构(3.9):数组(数组基本使用、数组的循环、数组拷贝、数组排序、多维数组)
- Establishing SSL connection without server identity verification is not recommended
- 《Java从入门到失业》第三章:基础语法及基本程序结构(3.8):流程控制(循环语句、while语句、for语句)
- 《Java从入门到失业》第三章:基础语法及基本程序结构(3.8):流程控制(选择语句、if-else语句、switch语句)
- 线上服务启动卡死,堆栈分析
- 《Java从入门到失业》第三章:基础语法及基本程序结构(3.7):运算符(自增自减、关系运算、逻辑运算、条件运算、位运算、赋值运算、类型转换)
- JavaWeb——MyBatis框架之多表查询操作实战案例总结(MyBatis1对1查询,MyBatis1对多查询,MyBatis多对多查询)
- kubernetes(二十二) 服务网格化istio入门
- 使用Ngrok将本地服务映射为公网服务