Как отфильтровать выпадающий список в угловом параметре md при изменении значения области - PullRequest
1 голос
/ 17 июня 2019

У меня есть раскрывающееся меню с массивом данных

data = [{type:"day", value:"daily"}
        ,{type:"hour", value:"hourly"}
         ,{type:"month", value:"monthly"}] 

, а также у меня есть флаг в моей переменной среды как

enableHourly = "true"
enableDaily = "true"
enableMonthly = "true"

, установив одно из значений в ложьзначение должно быть таким, как

, если enableHourly = "false"

в выбранных опциях md должен отображать только день и месяц

это то, что я пытаюсь, но, похоже, егоне работает атм.

self.timeExecutionList = () => {
            // check if hourly, daily, weekly, monthly tag is true or false string then remove to
            // the array
            if (self.beebotCreate) {
                var arr = self.timeTypeList;
                for( var i = 0, n = arr.length; i < n; i++){ 
                    if (arr[i].includes('hr') && self.beebotRunHourly !== "true") {
                      arr.splice(i, 1); 
                    }

                    if (arr[i].type === 'day' && self.beebotRunTimeOfDay !== "true") {
                        arr.splice(i, 1); 
                    }

                    if (arr[i].type === 'week' && self.beebotRunMonthly !== "true") {
                        arr.splice(i, 1); 
                    }

                    if (arr[i].type === 'month' && self.beebotRunMonthly !== "true") {
                        arr.splice(i, 1); 
                    }
                    i--
                 }

                return arr
}

если у вас есть более чистый раствор, он будет оценен

1 Ответ

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

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

data = [{type:"day", value:"daily", "enabled" : true}
        ,{type:"hour", value:"hourly","enabled" : true}
        ,{type:"month", value:"monthly", "enabled" : true}]

В html для всех параметров, если флаг установлен в true, добавьте его в выпадающий список, иначе нет. Надеюсь, это поможет

<md-select> 
     <div ng-repeat="type in data" >
     <md-option *ngIf="type.enabled" ng-value="{{value}}">
          {{type.value}}
     </md-option>
     </div>
</md-select>`
...