今天就跟大家聊聊有關使用Angularjs如何實現下拉框聯動,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

第一種聯動方式
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" >
<label ng-repeat="x in views.data_range">
<input type="radio" name="radio" value="{{x}}">{{x}}
</label>
</div>
<div ng-switch-when="num" >
<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>看完上述內容,你們對使用Angularjs如何實現下拉框聯動有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創新互聯成都做網站行業資訊頻道,感謝大家的支持。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
文章標題:使用Angularjs如何實現下拉框聯動-創新互聯
文章起源:http://www.yijiale78.com/article48/jjdep.html
成都網站建設公司_創新互聯,為您提供網站改版、小程序開發、網站內鏈、建站公司、外貿建站、網站導航
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯