JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.1.4/angular.min.js"></script>
<div ng-app class="category" ng-controller="MainCtrl">
<select ng-model="category">
<option ng-switch on="category.items != null" ng-switch-when="false" ng-repeat="category in categories">{{ category.name }}</option>
<optgroup ng-switch on="category.items != null" ng-switch-when="true" ng-repeat="category in categories" label="{{ category.name }}">
<option ng-repeat="subCat in category.items">{{ subCat.name }}</option>
</optgroup>
</select>
</div>
JavaScript
function MainCtrl($scope) {
$scope.categories = [{"id":"Cart","name":"Ma commande"},{"id":18,"name":"Menus"},{"id":14,"name":"Entr\u00e9es"},{"id":5,"name":"Plats","items":[{"id":7,"name":"Viandes"},{"id":8,"name":"Poissons"},{"id":11,"name":"Pizzas"}]},{"id":15,"name":"Desserts"},{"id":17,"name":"Boissons","items":[{"id":1,"name":"Alcoolis\u00e9es"},{"id":3,"name":"Sans alcool"}]}]
}