Uncaught TypeError: angular.lowercase не является функцией - PullRequest
0 голосов
/ 21 мая 2018

Uncaught TypeError: angular.lowercase не является функцией

эта ошибка в моем приложении angularjs, и все приложение не работает.Это показано в textAngular-sanitize.js:413.

Не удалось отладить, я пытался использовать ту же версию, что и angular.js, но безуспешно.Пожалуйста, предоставьте мне решение для этого.У меня нет ничего общего, кроме этого сообщения об ошибке в консоли.

textAngular-sanitize.js:413 Uncaught TypeError: angular.lowercase is not a function
        at parseEndTag (textAngular-sanitize.js:413)
        at htmlParser (textAngular-sanitize.js:378)
        at textAngular-sanitize.js:147
        at textAngularSetup.js:443
        at Object.invoke (angular.js:5093)
        at angular.js:4892
        at forEach (angular.js:374)
        at createInjector (angular.js:4892)
        at doBootstrap (angular.js:1923)
        at bootstrap (angular.js:1944)

Ответы [ 8 ]

0 голосов
/ 03 января 2019

Я использую AngularJS v1.7.5 .В моем контроллере я использовал приведенный ниже код для преобразования строки в нижний регистр:

function myCtrl($scope, $filter)
{
    var sampleText = "THIS IS TEST";
    var test = $filter('lowercase')(sampleText);
}

Внедрить $ filter в контроллер и использовать его для преобразования в нижний регистр.

0 голосов
/ 05 октября 2018

Другим подходящим решением было бы заменить textAngular на testAngularJs, как предложил здесь.

npm install textangularjs

0 голосов
/ 10 ноября 2018

Я обнаружил похожую проблему при обновлении до angular 1.7.5, мое решение было обновить angular-sanitize, и проблема была исправлена. угловой Sanitize

0 голосов
/ 23 сентября 2018

Ответ Овидиу Долхи привел меня почти туда.Если вы посмотрите на реализацию устаревшей функции lowercase, то это немного больше.Эта реализация подкладки сделала свое дело для меня:

/**
 * @brief Shim for textAngular in order to make it compatible with the latest 
 *   version of angularjs
 */

function lowercase(string) {
  return (typeof string === 'string') ? string.toLowerCase() : string;
}

// Angular deprecated the lowercase function as of v1.6.7. TextAngular hasn't 
// updated to reflect this
angular.lowercase = lowercase;
0 голосов
/ 27 июля 2018

Angular 1.7. * По-прежнему имеет функцию строчных букв, но переименована в $$ строчными.Это возможный обходной путь. Покупатель остерегается на основании угловой документации .

angular.module('MyApp').config(function() {
  angular.lowercase = angular.$$lowercase;  
});
0 голосов
/ 29 июня 2018

, если вы используете angularjs с машинописью и линтером (в моем случае, tslint + standard), правильный обходной путь будет:

if (!angular.lowercase) (angular as any).lowercase = (text: string) => angular.isString(text) ? text.toLowerCase() : text
0 голосов
/ 06 июня 2018

Я хотел бы поделиться своими взглядами, чтобы это помогло другим людям, которые борются, как я, основная проблема заключается в том, что angularJS официально удалил строчные и прописные функции из своей библиотеки, чтобы люди, которые используют textAngular-sanitize.js, получили этоошибка, потому что textangular все еще имеет этот метод в своей библиотеке, которая будет через эту проблему.

Вы можете либо удалить textAngular-sanitize.js из вашего проекта, либо включить в ваше приложение код Ovidiu Dolha ..js до angular.module загружается, как показано ниже.

angular.uppercase=function(text){
 return text.toUpperCase();
 }
 angular.lowercase=function(text){
 return text.toLowerCase();
 }

angular.module('sampleApp', ....)

Код, заданный Овидиу Долой

angular.lowercase = text => text.toLowerCase();

Может быть записан как

angular.lowercase=function(text){
     return text.toLowerCase();
     }

Оба будут работать,Спасибо.

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

Как вы можете видеть здесь , угловые устарели как их lowercase утилитарный метод.

Используемая вами библиотека еще не обновлена ​​и поэтому совместима только с угловой версией до 1.6.7.Но, поскольку вы получаете эту ошибку, используемая вами угловая версия, вероятно, выше.

Вы можете либо

(A) снизить значение до 1.6.7 в вашем bower.json:

"dependencies": {
   "angular": "1.6.7",
   ...
}
"resolutions": {
   "angular": "1.6.7"
}

(B) Создайте простой обходной путь, добавив эти методы обратно так:

angular.lowercase = text => text.toLowerCase();

Убедитесь, что это сделано после того, как значение углазагружен, но до запуска вашего приложения.

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