Я генерирую набор кнопок, используя директиву 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: "@"
}
}
Я пытался сделать некоторые хитрости и трюки, но не смог добиться успеха. Я упускаю что-то очевидное, но не могу понять, что это такое.
Как скрыть второй набор кнопок на основе кнопки, выбранной из первого набора кнопок?
Заранее большое спасибо.