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">&lt;</option>
        <option value="1">=</option>
        <option value="2">&gt;</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字段类型操作教程  香港服务器网站卡顿?如何解决网络延迟与负载问题?