第一种联动方式,在网上看到的,感觉对于我的使用性不高,比较后端不会提供这种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.实现效果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
暂无评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
2024年11月28日
2024年11月28日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]