Search code examples
angularjstreeng-optionsparentid

Angularjs: ng-options group by


I have this one level tree situation:

<select ng-model="tipost" 
        ng-options="tip.DESC group by tip.TIPIS for tip in tipall"><br>
</select>



where the json is:

[
  {"ID":"1", "IDPARENT":"0", "TIPIS":"", "DESC":"GroupName1"},
  {"ID":"2", "IDPARENT":"1", "TIPIS":"GroupName1", "DESC":"CHILDNAME1"},
  {"ID":"3", "IDPARENT":"0", "TIPIS":"", "DESC":"GroupName2"}
]


the problem is that this creates the optgroups with their children but repeats the roots too:

- GroupName1
- GroupName2
[ GroupName1 ]
- CHILDNAME1
[ GroupName2 ]


i want to produce:

[ GroupName1 ]
- CHILDNAME1
[ GroupName2 ]



Solution

  • The grouping doesn't quite work like that, if you change your json to something like this:

    [
     {"ID":"1", "TIPIS":"GroupName1", "DESC":"name"},
     {"ID":"2", "TIPIS":"GroupName1", "DESC":"name1"},
     {"ID":"3", "TIPIS":"GroupName2", "DESC":"name2"},
     {"ID":"4", "TIPIS":"GroupName1", "DESC":"name3"},
    ]
    

    Then you'll get the grouping the way you want

    jsFiddle: http://jsfiddle.net/rtCP3/182/