Tavion
@Tavion
front-end developer

Как избежать ошибок происходящих до подключения всех скриптов?

Доброго дня.

Для фильтрации контента по тегам, которые задаются пользователем у меня используется модуль ngTagsInput, фильтрация происходит при помощи такого кода, который находится в app.js

app.filter('filterByTags', function () {
    return function (items, tags) {
        var filtered = [];
        (items || []).forEach(function (item) {
            var matches = tags.some(function (tag) {
                return (item.text.indexOf(tag.text) > -1) ||
                    (item.text.indexOf(tag.text) > -1);
            });
            if (matches) {
                filtered.push(item);
            }
        });
        if (tags === undefined || tags.length === 0) {
            return items;
        } else {
            return filtered;
        }
    };
});


Этот скрипт отрабатывается ещё до того, как у меня подключаются контроллеры и сервисы и из-за этого вываливаются в консоль ошибки, т.к. этот скрипт, например, пытается получить длину массивов, которые в это время ещё undefined.

TypeError: Cannot read property 'length' of undefined


Эти ошибки никак не мешают работе приложения в целом, но лично меня очень раздражают, да и мне кажется, что такого не должно происходить, когда всё нормально сделано. Каким образом можно избавиться от этих ошибок?
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
DeadCowsDontMoo
@DeadCowsDontMoo
web
Вижу 3 варианта, но не даю гарантии что хотя бы 1 из них будет работать как надо))) но на нужные мысли они все же подтолкнут...

1) Разместить код где-то в футере
2) Задать условие if "при полной загрузке страницы"
3) Прописать игнорирование ошибок (наверное самый плохой вариант)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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