Использование таблицы печати ng-repeat в AngularJS с фильтром - PullRequest
0 голосов
/ 11 июня 2019

Я хочу использовать директиву ng-repeat в AngularJS с настроенным фильтром для печати таблицы.

Предположим, что у меня есть следующие данные

[
{
    "Key":{
        "Name":"Paul",
        "Age":"18"
     },
    "Info":{
        "Gender":"M"
     }
},
{
    "Key":{
        "Name":"John",
        "Age":"19"
    },
    "Info":{
        "Gender":"M"
    }
},
{
    "Key":{
        "Name":"Jane",
        "Age":"17"
    },
    "Info":{
        "Gender":"F"
    }
}
]

При использовании ng-repeat и filter, я надеюсь, что смогу отфильтровать по имени или другим параметрам.Поэтому я попытался:

<div>
    <tr ng-repeat="x in data | myFilter: filterText">
        <td>{{x.Key.Name}}</td>
        <td>{{x.Key.Age}}</td>
    </tr>
</div>

Мой скрипт для настройки фильтра здесь:

myApp.filter("myFilter",function(){
    return function(input, filterText){
        if(input.Key.Name == filterText){
            return input;
        }
    }
})

Я продолжаю получать сообщение об ошибке из консоли, что Имя не определено.У меня такая же проблема, что доступ к Javascript Array of Object.Я настроил ввод JSON-файла $scope.data.
filterText будет фильтровать ключевые слова для Name.

1 Ответ

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

Прежде всего, в вашем шаблоне отсутствуют теги таблицы.Вы можете фильтровать с помощью вложенного свойства «Имя» без использования специального фильтра, например:

<table>
    <tr ng-repeat="x in data | filter: { Key: {Name: filterText} }">
        <td>{{x.Key.Name}}</td>
        <td>{{x.Key.Age}}</td>
    </tr>
</table>

Проверьте рабочий пример: jsfiddle

...