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"}]}]
}