溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Angularjs如何實現(xiàn)下拉框聯(lián)動

發(fā)布時間:2021-04-12 17:19:10 來源:億速云 閱讀:451 作者:Leah 欄目:web開發(fā)

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

第一種聯(lián)動方式

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: "監(jiān)控安全類",
        utils: [
          { code: 0101, name: "遙控門鎖" },
          { code: 0102, name: "聲光報警器" },
          { code: 0103, name: "攝像頭" }
        ]
      },
      {
        code: 02,
        name: "大家電",
        utils: [
          { code: 0201, name: "空調" },
          { code: 0202, name: "洗衣機" },
          { code: 0203, name: "洗碗機" }
        ]
      }
    ]

第二種聯(lián)動方式,這次是根據后臺要求,自己寫的一個聯(lián)動,當然沒有請求接口,就是單獨寫個固定值

1.聯(lián)動的思路

1.首先是選擇總類別
2.總類別選擇后,會關聯(lián)出設備
3.設備選擇后,會關聯(lián)出屬性
4.屬性選擇后,會根據屬性的不同,關聯(lián)出不同的項目

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":"監(jiān)控"},
   {"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轉換成對象,方便下面的屬性相關操作,例如“開關”屬性,要找去其相關的類型數(shù)據和值
   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ù)據類型和數(shù)據值
$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來進行判斷顯示,若數(shù)值類型位bool,則顯示單選框,若數(shù)值類型位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">&lt;</option>
        <option value="1">=</option>
        <option value="2">&gt;</option>
      </select>
      {{views.data_range}}
      <input type="text">
    </div>
  </div>

看完上述內容,你們對使用Angularjs如何實現(xiàn)下拉框聯(lián)動有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI