Как реализовать импорт массивов из JSON в директивы?

Здравствуйте.
Недавно задавал вопрос. Решил сделать простое приложение - список контактов.
Код лежит здесь
Живое демо
Казалось бы, сделал то, что хотел, однако всё не так просто.
1. Необходимо вызывать массив данных из JSON'ов. На каждое значение, например, lastName, gender etc. есть JSON объекты, однако мне никак не удается правильно их подключить.
Пример:
[
    {
        "firstname": "Станислав"
    },
    {
        "firstname": "Анатолий"
    },
    {
        "firstname": "Роман"
    },
    {
        "firstname": "Антон"
    },
    {
        "firstname": "Наталья"
    },
    {
        "firstname": "Камиля"
    },
    {
        "firstname": "Валентин"
    },
    {
        "firstname": "Валентина"
    },
    {
        "firstname": "Гульнара"
    },
    {
        "firstname": "Дина"
    },
    {
        "firstname": "Инга"
    },
    {
        "firstname": "Константин"
    }
]

2. Возможно ли для gender указать значения male или female, а затем через проверку вывести соответствующее изображение?
3. Как можно упростить это приложение?
Благодарю за ответы, помощь и поддержку
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
1. Вы хотите загрузить данные я так понимаю? Для этого нужно использовать сервис $http.
2. Конечно. Вариантов много, например обработать данные в контроллере и по значению gender добавлять в поле genderImage то что нужно. Можно прямо в шаблоне написать ng-src={{'/images/' + gender + '.jpg'}}
3. Как минимум убрать повторяющиеся куски кода из шаблона. Шапку таблицы можно сделать через ng-repeat, имея в контроллере список полей + пару функций для установки текущей сортировки. Раз уж используете ангуляр 1.5+ - сделайте компонент вместо обычного контроллера. Используйте одноразовые биндинги для данных, это уменьшит количество watcherов. После этого можете попробовать поработать с routerом, сделайте возможность перехода на страницу детальной информации о человеке по клику на таблицу.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы