Angularjs實(shí)現(xiàn)下拉框聯(lián)動(dòng)的示例代碼
第一種聯(lián)動(dòng)方式,在網(wǎng)上看到的,感覺對(duì)于我的使用性不高,比較后端不會(huì)提供這種json。。。
實(shí)現(xiàn)截圖

html
<select ng-model="s1" ng-options="selectData.name for selectData in selectDatas">
<option value="">--產(chǎn)品類目--</option>
</select>
<select ng-model="s2" ng-options="util.name for util in s1.utils">
<option value="">--產(chǎn)品類型--</option>
</select>
js
$scope.selectDatas = [{
code: 01,
name: "監(jiān)控安全類",
utils: [
{ code: 0101, name: "遙控門鎖" },
{ code: 0102, name: "聲光報(bào)警器" },
{ code: 0103, name: "攝像頭" }
]
},
{
code: 02,
name: "大家電",
utils: [
{ code: 0201, name: "空調(diào)" },
{ code: 0202, name: "洗衣機(jī)" },
{ code: 0203, name: "洗碗機(jī)" }
]
}
]
第二種聯(lián)動(dòng)方式,這次是根據(jù)后臺(tái)要求,自己寫的一個(gè)聯(lián)動(dòng),當(dāng)然沒有請(qǐng)求接口,就是單獨(dú)寫個(gè)固定值
1.聯(lián)動(dòng)的思路
1.首先是選擇總類別
2.總類別選擇后,會(huì)關(guān)聯(lián)出設(shè)備
3.設(shè)備選擇后,會(huì)關(guān)聯(lián)出屬性
4.屬性選擇后,會(huì)根據(jù)屬性的不同,關(guān)聯(lián)出不同的項(xiàng)目
2.代碼
1)設(shè)備類別下拉
html
<select ng-model="devicetype" ng-options="x.category for x in devices" ng-change="changeType(devicetype)"> <option value="">--設(shè)備--</option> </select>
js
$scope.devices = [
{"category":"大家電"},
{"category":"紅外感應(yīng)"},
{"category":"監(jiān)控"},
{"category":"燈光"},
]
// 根據(jù)大類來獲取設(shè)備列表
$scope.changeType = function(x){
$log.log(x.category)
//TODO: 真正使用肯定是要用$http來請(qǐng)求設(shè)備列表
//暫時(shí)測(cè)試使用下面的
switch(x.category){
case "大家電":
$scope.yourdevices = [
{"dev":"電視機(jī)(mac:32309fsaf)"},
{"dev":"洗衣機(jī)(mac:32309fsaf)"},
{"dev":"冰箱(mac:32309dqsq)"},
{"dev":"空調(diào)(mac:32309fsaf)"}
];
break;
}
}
2)設(shè)備下拉
html
<select ng-model="yourdevice" ng-options="x.dev for x in yourdevices" ng-change="changeDev(yourdevice)"> <option value="">--你的設(shè)備--</option> </select>
js
$scope.changeDev = function (x) {
$log.log(x.dev)
switch (x.dev) {
case '電視機(jī)(mac:32309fsaf)':
$scope.params = [
{
'display_name': '開關(guān)',
'data_type': 'bool',
'data_range': [ '開','關(guān)']
},
{
'display_name': '溫度',
'data_type': 'num',
'data_range': [30]
}
]
//此處將json轉(zhuǎn)換成對(duì)象,方便下面的屬性相關(guān)操作,例如“開關(guān)”屬性,要找去其相關(guān)的類型數(shù)據(jù)和值
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
//獲取數(shù)據(jù)類型和數(shù)據(jù)值
$scope.changeParam = function (x) {
var pobj = $scope.paramobjs;
$scope.views = pobj[x];
$scope.type = $scope.views.data_type
$log.log($scope.views)
}
4)屬性項(xiàng)
html
使用ng-swtch來進(jìn)行判斷顯示,若數(shù)值類型位bool,則顯示單選框,若數(shù)值類型位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.實(shí)現(xiàn)效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- AngularJS動(dòng)態(tài)生成select下拉框的方法實(shí)例
- angularjs 動(dòng)態(tài)從后臺(tái)獲取下拉框的值方法
- angularJs-$http實(shí)現(xiàn)百度搜索時(shí)的動(dòng)態(tài)下拉框示例
- AngularJS中下拉框的高級(jí)用法示例
- AngularJS中下拉框的基本用法示例
- angularjs下拉框空白的解決辦法
- angularjs 實(shí)現(xiàn)帶查找篩選功能的select下拉框?qū)嵗?/a>
- Angularjs實(shí)現(xiàn)帶查找篩選功能的select下拉框示例代碼
- AngularJS使用ng-repeat指令實(shí)現(xiàn)下拉框
- AngularJS實(shí)現(xiàn)多級(jí)下拉框
相關(guān)文章
angular學(xué)習(xí)之動(dòng)態(tài)創(chuàng)建表單的方法
這篇文章主要介紹了angular學(xué)習(xí)之動(dòng)態(tài)創(chuàng)建表單的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-12-12
用Angular實(shí)現(xiàn)一個(gè)掃雷的游戲示例
這篇文章主要介紹了用Angular實(shí)現(xiàn)一個(gè)掃雷的游戲示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
Angular6 發(fā)送手機(jī)驗(yàn)證碼按鈕倒計(jì)時(shí)效果實(shí)現(xiàn)方法
這篇文章主要介紹了Angular6 發(fā)送手機(jī)驗(yàn)證碼按鈕倒計(jì)時(shí)效果實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-01-01
AngularJs 利用百度地圖API 定位當(dāng)前位置 獲取地址信息
本文主要介紹了AngularJs 利用百度地圖API 定位當(dāng)前位置 獲取地址信息的方法步驟。具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01
AngularJS發(fā)送異步Get/Post請(qǐng)求方法
今天小編就為大家分享一篇AngularJS發(fā)送異步Get/Post請(qǐng)求方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-08-08
AngularJS實(shí)現(xiàn)路由實(shí)例
本文給大家分享的是使用angularjs路由框架實(shí)現(xiàn)的一個(gè)簡(jiǎn)單頁面跳轉(zhuǎn)功能,非常的實(shí)用,也很詳細(xì),有需要的小伙伴可以參考下2017-02-02
Angular搜索 過濾 批量刪除 添加 表單驗(yàn)證功能集錦(實(shí)例代碼)
這篇文章主要介紹了Angular搜索 過濾 批量刪除 添加 表單驗(yàn)證功能集錦(實(shí)例代碼),需要的朋友可以參考下2017-10-10

