Пусть говорят, у меня есть следующие:Показать/скрыть опции SELECT?
<select class="form-control" name="blah" ng-model="$ctrl.form.blah" ng-options="item.id as item.name group by item.etype | uppercase for item in $ctrl.opts"></select>
Теперь то, что я хочу, чтобы скрыть/показать все GROUP, нажав группы кнопку ИЭ есть кнопки для каждой группы, и когда я переключать кнопкой мыши, я хочу заданные параметры группы, чтобы скрыть/показать в поле выбора.
Любой способ сделать это?
Я сделал это с фильтром, как объяснил Ятрикс, плюс передаю контулер компонента в качестве аргумента. Таким образом, я могу получить доступ к триггерным варам, чтобы решить, что именно фильтровать.
Единственная проблема у меня сейчас является то, что я использую:
ctrl.form.select_box = ctrl.opts[0].id
Я больше не может использовать, чтобы установить параметр по умолчанию !! любой способ решить это.
это то, что я закончил с:
<select class="form-control" name="blah" ng-model="$ctrl.form.blah" ng-options="item.id as item.name group by item.etype | uppercase for item in $ctrl.opts | blah:$ctrl"></select>
angular.module('myapp').filter('blah', function() {
return function(items, ctrl) {
rv = [];
angular.forEach(items, function(item) {
if (ctrl.blah_f1 && item.etype == 'type1') rv.push(item);
if (ctrl.blah_f2 && item.etype == 'type2') rv.push(item);
});
return rv;
};
});
Я знаю, что это не очень хорошая идея, чтобы получить прямой доступ к Ctrl, но не вижу никакого другого пути чисто влияющий фильтр. Флаги запускаются с помощью двух кнопок, которые ведут себя как радио &. Так, хотя бы одна кнопка должна быть включена, но возможно, что оба они включены. Таким образом, пользователь может решить, какой «тип» элементов находится в поле выбора.
Не пропускайте контроллер в качестве аргумента в фильтре. Сохраняйте свои проблемы отдельно. Фильтр должен отображать список элементов и фильтровать их и больше ничего не делать. Он не должен требовать знания о работе контроллера. – Yatrix
Можете ли вы разместить свой код в скрипке? Будет намного легче увидеть, что вы делаете. Вы не размещаете много кода здесь. – Yatrix