Angularjs实现下拉框联动的示例代码
发布时间 - 2026-01-11 02:54:50 点击率:次第一种联动方式,在网上看到的,感觉对于我的使用性不高,比较后端不会提供这种json。。。

实现截图
html
<select ng-model="s1" ng-options="selectData.name for selectData in selectDatas">
<option value="">--产品类目--</option>
</select>
<select ng-model="s2" ng-options="util.name for util in s1.utils">
<option value="">--产品类型--</option>
</select>
js
$scope.selectDatas = [{
code: 01,
name: "监控安全类",
utils: [
{ code: 0101, name: "遥控门锁" },
{ code: 0102, name: "声光报警器" },
{ code: 0103, name: "摄像头" }
]
},
{
code: 02,
name: "大家电",
utils: [
{ code: 0201, name: "空调" },
{ code: 0202, name: "洗衣机" },
{ code: 0203, name: "洗碗机" }
]
}
]
第二种联动方式,这次是根据后台要求,自己写的一个联动,当然没有请求接口,就是单独写个固定值
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.实现效果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Angular
# 下拉框联动
# Angularjs实现下拉框联动
# AngularJS动态生成select下拉框的方法实例
# angularjs 动态从后台获取下拉框的值方法
# angularJs-$http实现百度搜索时的动态下拉框示例
# AngularJS中下拉框的高级用法示例
# AngularJS中下拉框的基本用法示例
# angularjs下拉框空白的解决办法
# angularjs 实现带查找筛选功能的select下拉框实例
# Angularjs实现带查找筛选功能的select下拉框示例代码
# AngularJS使用ng-repeat指令实现下拉框
# AngularJS实现多级下拉框
# 要用
# 不高
# 要找
# 转换成
# 第二种
# 第一种
# 大家多多
# 文本框
# 类目
# 后端
# 在网上
# 下拉框
# 产品类型
# 单选框
# utils
# js
# scope
# code
# devicetype
# br
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251811 】
【
AI营销90571 】
相关推荐:
Laravel Docker环境搭建教程_Laravel Sail使用指南
如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】
开心动漫网站制作软件下载,十分开心动画为何停播?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
Laravel集合Collection怎么用_Laravel集合常用函数详解
如何在香港免费服务器上快速搭建网站?
什么是javascript作用域_全局和局部作用域有什么区别?
微信h5制作网站有哪些,免费微信H5页面制作工具?
高端企业智能建站程序:SEO优化与响应式模板定制开发
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
韩国服务器如何优化跨境访问实现高效连接?
如何在IIS中配置站点IP、端口及主机头?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
详解Oracle修改字段类型方法总结
品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
Laravel如何记录自定义日志?(Log频道配置)
如何用狗爹虚拟主机快速搭建网站?
如何在VPS电脑上快速搭建网站?
如何基于PHP生成高效IDC网络公司建站源码?
百度浏览器网页无法复制文字怎么办 百度浏览器复制修复
高性能网站服务器配置指南:安全稳定与高效建站核心方案
夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化
Laravel如何使用Blade组件和插槽?(Component代码示例)
黑客如何通过漏洞一步步攻陷网站服务器?
🚀拖拽式CMS建站能否实现高效与个性化并存?
Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives
香港服务器如何优化才能显著提升网站加载速度?
如何快速生成可下载的建站源码工具?
如何在云主机快速搭建网站站点?
如何用景安虚拟主机手机版绑定域名建站?
大连 网站制作,大连天途有线官网?
利用JavaScript实现拖拽改变元素大小
Linux后台任务运行方法_nohup与&使用技巧【技巧】
高防服务器租用首荐平台,企业级优惠套餐快速部署
Bootstrap整体框架之JavaScript插件架构
Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置
PHP正则匹配日期和时间(时间戳转换)的实例代码
如何快速生成橙子建站落地页链接?
原生JS实现图片轮播切换效果
深入理解Android中的xmlns:tools属性
微信公众帐号开发教程之图文消息全攻略
如何安全更换建站之星模板并保留数据?
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
如何为不同团队 ID 动态生成多个“认领值班”按钮
Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】
Laravel如何处理JSON字段_Eloquent原生JSON字段类型操作教程
香港服务器网站卡顿?如何解决网络延迟与负载问题?

