Подтвердить что ты не робот

Условный дисплей AngularJs для ng-опций

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

Я пытаюсь отображать данные из массива в поле выбора с помощью ng-options. С этим я не имею никаких проблем. Что мне нужно реализовать, так это то, что в поле выбора будут отображаться/включены только определенные значения массива.

Мои данные выглядят следующим образом:

$scope.chartList = [ { "id" : 1, "name" : "chart 1", "order" : 1, "active" : false },
                     { "id" : 2, "name" : "chart 2", "order" : 2, "active" : true },
                     { "id" : 3, "name" : "chart 3", "order" : 3, "active" : true },
                     { "id" : 4, "name" : "chart 4", "order" : 4, "active" : true }, 
                     { "id" : 5, "name" : "chart 5", "order" : 5, "active" : true } ];

И мой HTML выглядит так:

<select ng-model="toAddChart" ng-options="chart.id as chart.name for chart in chartList | filter:chart.active=='false'">
  <option value=""></option>
</select>

Так что я хочу, чтобы это произошло, если значение атрибута "active" равно false, то это единственный раз, когда элемент массива будет отображаться/включаться в список выбора. Я пробовал разные перестановки атрибута фильтра, но ни один из них не работает.

Я знаю, что я могу легко использовать ng-repeat в теге и использовать ng-show, но я помню, где-то читал (опять же, я не могу найти, где), что это не правильный способ его реализации и что с помощью ng-options является правильным способом.

Я действительно уверен, что смог сделать это раньше, не создавая настраиваемый фильтр javascript, но для жизни меня не помню, как я это сделал. Я надеюсь, что кто-то сможет

Надеюсь, кто-то может помочь мне в этом, потому что у меня нет идей.

Update:

Великий Скотт, я думаю, что у меня есть.

Вместо:

filter:chart.active=='false'

Это должно быть:

filter:chart.active='false'

Это просто количество равных знаков. Facepalm

Спасибо за ответы, всем.

4b9b3361

Ответ 1

Великий Скотт, я думаю, что у меня есть.

Вместо:

filter:chart.active=='false'

Это должно быть:

filter:chart.active='false'

Это просто количество равных знаков. Facepalm

Спасибо за ответы, всем.

Ответ 2

Эй, вместо этого лучше использовать

ng-options = "chart.id как chart.name для диаграммы в chartList | filter: {active: true}"