Angularjs - Как перебрать список словарей в избранной optgroup? - PullRequest
0 голосов
/ 03 июня 2019

У меня есть список категорий, каждая из которых содержит подкатегории. Я пытаюсь получить их внутри optgroup опций выбора, вот как выглядит список:

{
  "data": [
    {
      "category": "First Category", 
      "0": {
        "name": "Sub 1", 
        "under": [
          "Under 1", 
          "Under 2"
        ]
      }, 
      "1": {
        "name": "Sub 2", 
        "under": [
          "Under 1", 
          "Under 2", 
          "Under 3"
        ]
      }, 
      "2": {
        "name": "Sub 3", 
        "under": [
          "Under 1", 
          "Under 2"
        ]
      }
    },
    {
      "category": "Second Category", 
      "0": {
        "name": "Sub 1", 
        "under": [
          "Under 1", 
          "Under 2"
        ]
      }, 
    },
  ]
}

У меня есть еще один выбор, который содержит все категории. Второй отображается в зависимости от моего первого выбора, поэтому, например, если я выберу Первая категория , все вторые и подчиненные элементы должны быть добавлены во второй выбор:

// Fetch all available categories
$scope.initCategories = function(obj){
    $scope.promise = sendRequest.sendObject('/fetch-categories', obj, config)
    $scope.promise.then(function(success) {
        $scope.categories = success.data
        $scope.stepData.category = $scope.categories
        return true
    }, function(err) {
        return false, err
    })
}

<select class="form-control custom-select" name="categories" ng-model="stepData.category" ng-options="x.category for x in categories track by x.category">
</select>

<select ng-if="stepData.category" class="form-control custom-select" ng-model="stepData.sub" ng-options="sub group by sub.name for (index, key) in stepData.category[index]"></select>

Вот пример того, что я пытаюсь сделать: http://jsfiddle.net/rtCP3/182/

1 Ответ

0 голосов
/ 03 июня 2019

Я получил его на работу, я использовал ng-repeat вместо ng-options во втором выборе:

<select ng-if="category" id="product_sub_category" name="product_sub_category" class="form-control custom-select" ng-model="sub_category" ng-change="setSubCategory()">
    <optgroup ng-repeat="(index, key) in category track by $index" label="<%key.name%>">
        <option ng-repeat="value in key.under track by $index">
            <%value%>
        </option>
    </optgroup>
</select>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...