Как использовать логическую переменную на фильтре при фильтрации ng-repeat? - PullRequest
0 голосов
/ 12 июня 2019

У меня возникли проблемы при попытке отфильтровать список ng-repeat, используя логическое значение из опции выбора

Я пытался просто поместить логическое значение из select с {{}} и без скобок.

<div>  
    <select ng-model="mybool" ng-options="o.v as o.n for o in 
        [{ n: 'Not included', v: false }, { n: 'Included', v: true }]">
    </select>
</div>

Это HTML в таблице

<tr ng-repeat="item in model.items | filter:{enabled:mybool}">

<tr ng-repeat="item in model.items | filter:{enabled:{{mybool}}">

это в файле JavaScript


$scope.mybool = true;

Список больше не отображается при использовании переменной mybool. Он показывает только если я использую тип данных true или false. Я ожидаю увидеть только те параметры, для которых для параметра enabled установлено значение true или false, в зависимости от выбранной опции.

<tr ng-repeat="item in model.items | filter:{enabled:true}">
<tr ng-repeat="item in model.items | filter:{enabled:false}">

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

Я новичок в angular и пришел из Java, поэтому меня это смущает

1 Ответ

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

Нет необходимости использовать двойные скобки в выражении ng-repeat.Первый является правильным:

<tr ng-repeat="item in model.items | filter:{enabled:mybool}">

Просто убедитесь, что $ scope.model не является неопределенным, а $ scope.model.items имеют правильные значения.

Остальной код кажетсяхорошо и должно работать, проверьте этот рабочий пример: пример скрипки

...