全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Angularjs实现下拉框联动的示例代码

第一种联动方式,在网上看到的,感觉对于我的使用性不高,比较后端不会提供这种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 


相关文章: 简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  宝塔面板创建网站无法访问?如何快速排查修复?  网站制作和推广的区别,想自己建立一个网站做推广,有什么快捷方法马上做好一个网站?  网站制作报价单模板图片,小松挖机官方网站报价?  如何在万网自助建站平台快速创建网站?  海南网站制作公司有哪些,海口网是哪家的?  盘锦网站制作公司,盘锦大洼有多少5G网站?  如何用PHP快速搭建CMS系统?  建站ABC备案流程中有哪些关键注意事项?  在线教育网站制作平台,山西立德教育官网?  广州美橙建站如何快速搭建多端合一网站?  Swift中switch语句区间和元组模式匹配  如何彻底删除建站之星生成的Banner?  C++如何编写函数模板?(泛型编程入门)  如何在阿里云虚拟服务器快速搭建网站?  建站之星客服服务时间及联系方式如何?  如何在腾讯云免费申请建站?  C#如何在一个XML文件中查找并替换文本内容  如何在阿里云虚拟主机上快速搭建个人网站?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?  常州企业网站制作公司,全国继续教育网怎么登录?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何在Windows服务器上快速搭建网站?  建站之星展会模版如何一键下载生成?  宝塔新建站点报错如何解决?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  深圳网站制作的公司有哪些,dido官方网站?  如何构建满足综合性能需求的优质建站方案?  网站制作免费,什么网站能看正片电影?  如何在宝塔面板中创建新站点?  如何快速重置建站主机并恢复默认配置?  建站之星收费标准详解:套餐费用及年费价格表一览  宝塔建站教程:一键部署配置流程与SEO优化实战指南  如何挑选最适合建站的高性能VPS主机?  建站主机服务器选购指南:轻量应用与VPS配置解析  如何快速辨别茅台真假?关键步骤解析  公司网站建设制作费用,想建设一个属于自己的企业网站,该如何去做?  婚礼视频制作网站,学习*后期制作的网站有哪些?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  如何用免费手机建站系统零基础打造专业网站?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  南宁网站建设制作定制,南宁网站建设可以定制吗?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  建站VPS配置与SEO优化指南:关键词排名提升策略  专业公司网站制作公司,用什么语言做企业网站比较好?  如何用美橙互联一键搭建多站合一网站?  学校免费自助建站系统:智能生成+拖拽设计+多端适配  Python lxml的etree和ElementTree有什么区别  宝塔建站助手安装配置与建站模板使用全流程解析  如何规划企业建站流程的关键步骤? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。