Ошибка AngularJS ngSanitize на 1.7.0 - PullRequest
0 голосов
/ 14 мая 2018

У меня довольно много этой ошибки: AngularJS ngSanitize Error

короткая версия: "нижний регистр не является функцией".

Хотя в моем приложении AngularJS применяется до версии 1.4.9, мы не применяем angular-sanitize, поэтому оно разрешается до 1.7.0, и в этой версии функции строчных букв AngularJS больше не существует, что приводит к ошибке.

Возможно, принудительное использование angular-sanitize для исправленной версии исправит это, но я хочу выйти за рамки исправления и понять, что является причиной проблемы и почему, потому что я обнаружил несколько несоответствий.

  • AngularJS форсируется до 1,4,9. Папка bower-components содержит эту версию, папка сборки после компиляции также содержит эту версию, панель разработчика в Chrome показывает, что только эта версия загружена. Эта версия имеет строчный метод.

  • Angular-sanitize имеет угловой 1.7.0 в качестве зависимости, но он никогда не загружается, никогда. Ни в одной папке или подпапке во всем проекте, ни при компиляции, ни из Chrome. Поэтому я думаю, что единственный angular.js , к которому у него есть доступ, - это 1.4.9, который имеет метод строчных букв.

Я не совсем понимаю, почему тогда появляется ошибка "нижний регистр не является функцией", если единственный доступный angular.js все еще имеет этот метод. Также я не понимаю, почему angular-sanitize 1.7.0, требующая angular 1.7.0, использует несуществующие методы на AngularJS 1.7.0 (ошибка разработчиков Angular? Но мне трудно в это поверить.)

Возможно, sanitize как-то скачивает и получает доступ к angular 1.7.0, но я хотел бы знать, как это сделать. Просто из любопытства. А также, чтобы подтвердить, является ли это ошибкой разработчика или я что-то упустил.

1 Ответ

0 голосов
/ 15 мая 2018

Это объясняется в официальном Угловом руководстве по миграции от 1,6 до 1,7 :

Из-за 1daa4f вспомогательные функции angular.lowercase и angular.uppercase были удалены.

Эти функции устарели с 1.5.0. Они используются внутри, но не должны быть доступны, так как содержат специальную обработку языкового стандарта (для турецкого языка) для поддержания внутренней согласованности независимо от заданного пользователем языкового стандарта.

Разработчики обычно должны использовать встроенные модули toLowerCase и toUpperCase или toLocaleLowerCase и toLocaleUpperCase для особых случаев.

Кроме того, мы обычно не рекомендуем использовать помощники angular.x в коде приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...