Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
895 views
in Technique[技术] by (71.8m points)

angularjs - How to add a header in dropdown list (with ng-options Demo)

I want to create a dropdown list in AngularJS from a JSON file.
How do I add a header for similar list items in my dropdown?
For example:

Malaysia (add the header here)
--sunway
--subang
--petaling jaya
--shah alam
--Klang
--Subang Jaya
--Setia alam
--sunway lagoon

Japan (add the header here)
--tokyo
--osaka
--kyoto
--shinsabashi
--shinagawa

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Presuming your json looks something like this

$scope.dropdown = [
    {
        name:'Malaysia',
        items: [
            {name: 'sunway', value: 1},
            {name: 'subang', value: 2},
            {name: 'petaling jaya', value: 3}
        ]
    },
    {
        name:'Japan',
        items: [
            {name: 'tokyo', value: 4},
            {name: 'osaka', value: 5},
            {name: 'kyoto', value: 6}
        ]
    }
]

this should work:

<select>
    <optgroup ng-repeat="header in dropdown" label="{{ header.name }}">
        <option ng-repeat="item in header.items" value="{{ item.value }}">{{ item.name }}</option>
    </optgroup>
</select>

EDIT

demo: http://jsfiddle.net/jkrielaars/5wg9ejzg/


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...