欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Angularjs實(shí)現(xiàn)下拉框聯(lián)動(dòng)的示例代碼

 更新時(shí)間:2017年08月22日 16:23:30   作者:治電小白菜  
本篇文章主要介紹了Angularjs下拉框聯(lián)動(dòng)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

第一種聯(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">&lt;</option>
        <option value="1">=</option>
        <option value="2">&gt;</option>
      </select>
      {{views.data_range}}
      <input type="text">
    </div>
  </div>

3.實(shí)現(xiàn)效果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論