我正在查找允許用戶在層次結構中查看下拉列表中的元素的指令。 SELECT標籤支持。但是這隻允許2個級別。我想展示大約5個關卡。例如,
亞洲
---日本
------東京
------沖繩
嵌套的SELECT選項
用戶將能夠在任何級別的選擇項目。
用戶將能夠選擇亞洲或日本或東京。所有這些選項都會顯示在一個下拉列表中。我不是在尋找一個層疊選擇,你首先選擇大陸,然後選擇國家,然後選擇城市。
有沒有這個角度指令?
謝謝
佳日
我正在查找允許用戶在層次結構中查看下拉列表中的元素的指令。 SELECT標籤支持。但是這隻允許2個級別。我想展示大約5個關卡。例如,
亞洲
---日本
------東京
------沖繩
嵌套的SELECT選項
用戶將能夠在任何級別的選擇項目。
用戶將能夠選擇亞洲或日本或東京。所有這些選項都會顯示在一個下拉列表中。我不是在尋找一個層疊選擇,你首先選擇大陸,然後選擇國家,然後選擇城市。
有沒有這個角度指令?
謝謝
佳日
你爲什麼不只是做一個簡單的AngularJS引導UI-Select,並給出了選項根據自己的層次結構中的CSS類,並編輯CSS類,以符合您的喜好。
分叉的UI - 選擇Plunker和編輯它滿足您的要求,
HTML:
<ui-select ng-model="country.selected" theme="selectize" ng-disabled="disabled" style="width: 300px;">
<ui-select-match placeholder="Select or search a country in the list...">{{$select.selected.name}}</ui-select-match>
<ui-select-choices repeat="country in countries | filter: $select.search" >
<span ng-bind-html="country.name | highlight: $select.search" ng-class="country.css_class"></span>
</ui-select-choices>
</ui-select>
的Javascript:
$scope.countries = [ // Taken from https://gist.github.com/unceus/6501985
{name: 'Asia', code: 'AS', css_class: 'hierarchy1'},
{name: 'Japan', code: 'JP', css_class: 'hierarchy2'},
{name: 'Tokyo', code: 'JP-TK', css_class: 'hierarchy3'},
{name: 'Okinawa', code: 'JP-OK', css_class: 'hierarchy3'},
{name: 'India', code: 'IN', css_class: 'hierarchy2'},
{name: 'Mumbai', code: 'IN-MU', css_class: 'hierarchy3'},
{name: 'Kolkata', code: 'IN-KL', css_class: 'hierarchy3'},
{name: 'Europe', code: 'AS', css_class: 'hierarchy1'},
{name: 'Germany', code: 'JP', css_class: 'hierarchy2'},
{name: 'Berlin', code: 'JP-TK', css_class: 'hierarchy3'}
];
CSS:
/*Custom hierarchial classes*/
.hierarchy1{
background:#bbb;
color:red;
}
.hierarchy2{
background:#ddd;
color:blue;
margin-left:5px;
}
.hierarchy3{
background:#fff;
color:green;
margin-left:10px;
}
這實際上是一個非常好的方法。不幸的是,如果您輸入搜索搜索文本,則只會顯示與過濾器文本匹配的項目,這使得無法確定某個特定項目屬於哪個父項。實際的分層選擇通常顯示過濾項目的所有祖先。 – Ole 2015-01-26 15:42:17
@Ole我們可以做到這一點,將不得不修改國家數組添加一個屬性'父'來提及該項目的父項,並創建一個自定義過濾函數來相應地過濾父項 – 2015-01-27 16:53:24
其他方法是使用Angular tree-selector directive。它應該工作。
http://stackoverflow.com/questions/18723399/angularjs-cascading-select-dropdowns - 這就是所謂的級聯選擇 – SoluableNonagon 2014-10-08 16:28:59
我工作過類似的指令,你真正想要的是「級聯選擇」。這是我想出的一個:http://plnkr.co/edit/AnkWlneZCuKe39mafCsn?p=preview – SoluableNonagon 2014-10-08 16:29:34
用戶將能夠選擇亞洲或日本或東京。所有這些選項都會顯示在一個下拉列表中。我不是在尋找一個層疊選擇,你首先選擇大陸,然後選擇國家,然後選擇城市。 – Yash 2014-10-09 05:08:10