Условное сокрытие в AngularJS - PullRequest
0 голосов
/ 30 марта 2020

Я генерирую набор кнопок, используя директиву AngularJS. На основе файла JSON создаются наборы кнопок. То, что я хочу сделать, это при выборе кнопки из одного набора кнопок, следующий набор кнопок должен исчезнуть.

Когда выбрано «Net Sales», весь набор кнопок ниже должен быть удален

Образец JSON

charts: [
            {
              subCharts: [
                {
                  objId: "TMMdLdE",
                  group: "Performance",
                  title: "Sales/Volume Over Time",
                  variables: [
                    {
                      name: "vCv_1.1",
                      value: [
                        "Sales over time",
                        "Volume over time TRx",
                        "Volume over time NBRx",
                        "Volume over time DDD"
                      ],
                      alias: ["Net Sales","TRx", "NBRx", "DDD"],
                      type: "button"
                    },
                    {
                      name: "vCV_1.2",
                      hide: "Sales over time",
                      value: ["Overall", "Cardio", "PCP"],
                      alias: ["Overall", "Cardio", "PCP"],
                      type: "button"
                    }
                  ]
                }
              ]
            }
]

Директива управления кнопками

MashupApp.directive("buttonControl", function() {
    return {
      restrict: "E",
      template: `<span ng-if="ready">
                  <label ng-if="label">{{label || varName }}:</label>
                  <select ng-if="type=='dropdown' && objType=='variable'" 
                  ng-model="selectedVal" 
                  ng-options="v as v for v in varValues" 
                  ng-change="setVal(selectedVal)"></select>

                  <button ng-if="type=='button' && objType=='variable'"
                  ng-hide="hide==selectedVal"
                  ng-repeat="val in varValues" ng-class="{active: selectedVal == val}" 
                  class="bttn" 
                  ng-click="setVal(val)">{{varAlias[$index]}}</button>

                  <select ng-if="type=='dropdown' && objType=='field'" ng-model="selectedVal" ng-change="setVal(selectedVal)">
                     <option ng-repeat="row in ddRows track by row" value="{{row}}">{{row}}</option>
                  </select>
                </span>
                `,
      scope: {
        label: "@",
        type: "@",
        objType: "@",
        varName: "@",
        varValues: "=",
        varAlias: "=",
        hide: "@"
      }
}

Я пытался сделать некоторые хитрости и трюки, но не смог добиться успеха. Я упускаю что-то очевидное, но не могу понять, что это такое.

Как скрыть второй набор кнопок на основе кнопки, выбранной из первого набора кнопок?

Заранее большое спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...