2016-07-08 2 views
0

У меня есть эта структура: JSONМожно ли использовать ngOptions, чтобы получить массив объектов внутри массива объектов

$scope.menus = [ 
    { 
     "name":"about", 
     "url":"/about", 
     "submenus":[ 
     { 
      "name":"company", 
      "url":"/aboutcompany" 
     }, 
     { 
      "name":"jobs", 
      "url":"/jobs" 
     } 
     ] 
    } 
]; 

Можно ли получить доступ к подменю с помощью ngOptions?

+0

У меня есть выпадающее меню, которое, когда вы выберете опцию, должно показать подменю в теге select – Jose

+0

Вы имеете в виду подменю под надписью mouseover или on select? – Icycool

+0

Нет, я имею в виду, что у меня есть два раздела. Сначала это выпадающее меню, а второе - . Поэтому я хочу, чтобы, когда я выберу вариант из выпадающего меню, вы увидите его подменю на Jose

ответ

0

Да, вы можете, во-первых, вы должны перебирать в меню объектов, то вы можете сделать выбор для каждого подменю массива следующим образом:

(function() { 
 
    "use strict"; 
 
    angular.module('app', []) 
 
    .controller('mainCtrl', function($scope) { 
 
     $scope.selectedSubmenus = []; 
 
     $scope.menus = [{ 
 
     "name": "home", 
 
     "url": "/home", 
 
     "submenus": [{ 
 
      "name": "employee", 
 
      "url": "/aboutemployee" 
 
     }, { 
 
      "name": "something", 
 
      "url": "/something" 
 
     }] 
 
     }, { 
 
     "name": "about", 
 
     "url": "/about", 
 
     "submenus": [{ 
 
      "name": "company", 
 
      "url": "/aboutcompany" 
 
     }, { 
 
      "name": "jobs", 
 
      "url": "/jobs" 
 
     }] 
 
     }]; 
 
    }); 
 
})();
<!DOCTYPE html> 
 
<html ng-app="app"> 
 

 
<head> 
 
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script> 
 
</head> 
 

 
<body ng-controller="mainCtrl"> 
 
    <div ng-repeat="menu in menus track by $index"> 
 
    <strong>Menu name: </strong><span ng-bind="menu.name"></span> 
 
    <select ng-options="submenu as submenu.name for submenu in menu.submenus" ng-model="selectedSubmenus[$index]"> 
 
     <option value="">Select something</option> 
 
    </select> 
 
    <hr> 
 
    </div> 
 
    Selecteds: <pre ng-bind="selectedSubmenus | json"></pre> 
 
</body> 
 

 
</html>

Смежные вопросы