it-swarm.com.de

Nicht abgerufener TypeError: angle.lowercase ist keine Funktion

Nicht abgerufener TypeError: angle.lowercase ist keine Funktion

dieser Fehler in meiner anglejs-Anwendung wird nicht ausgeführt. Dies ist seine Darstellung in textAngular-sanitize.js:413.

Nicht in der Lage zu debuggen, ich habe versucht, dieselbe Version wie von angle.js zu verwenden, aber kein Erfolg. Bitte geben Sie mir eine Lösung dafür. Ich habe nichts außer dieser Fehlermeldung in der Konsole zu teilen.

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)
14

Wie Sie sehen, hier , hat winkle ihre lowercase util-Methode abgelehnt. 

Die von Ihnen verwendete Bibliothek wurde noch nicht aktualisiert und ist daher nur mit einer Winkelversion vor 1.6.7 kompatibel. Da Sie diesen Fehler erhalten, ist die von Ihnen verwendete Winkelversion wahrscheinlich höher.

Du kannst entweder 

(A) Steigwinkel auf 1.6.7 in deiner Laube.json:

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

(B) Erstellen Sie eine einfache Problemumgehung, indem Sie die folgenden Methoden als solche hinzufügen:

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

Stellen Sie sicher, dass dies ausgeführt wird, nachdem angle geladen wurde, aber bevor Ihre App gestartet wird.

21
Ovidiu Dolha

Ovidiu Dolhas Antwort brachte mich fast dort hin. Wenn Sie sich die Implementierung der Funktion lowercase vor der Deklaration ansehen, ist dies etwas mehr. Diese Shim-Implementierung hat für mich den Trick gebracht:

/**
 * @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;
3
Matt McCann

Winkel 1.7. * Hat noch Kleinbuchstaben, wurde aber in $$ Kleinbuchstaben umbenannt. Dies ist eine mögliche Problemumgehung. Käufer passen auf Angular-Dokumentation auf .

angular.module('MyApp').config(function() {
  angular.lowercase = angular.$$lowercase;  
});
3

Ich möchte meine Ansichten mitteilen, damit andere Personen, die wie ich kämpfen, geholfen werden. Das Hauptproblem ist, dass angleJS Klein- und Großbuchstabenfunktionen offiziell aus ihrer Bibliothek entfernt hat, sodass Benutzer, die textAngular-sanitize.js verwenden, diesen Fehler wegen textangular erhalten hat immer noch diese Methode in der Bibliothek, die durch dieses Problem geht.

Sie können entweder textAngular-sanitize.js aus Ihrem Projekt entfernen oder Ovidiu Dolha code in Ihre app.js einschließen, bevor die Datei angle.module wie folgt geladen wird.

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

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

Der von Ovidiu Dolha gegebene Code 

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

Kann als geschrieben werden 

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

Beides wird funktionieren. Vielen Dank.

1

Ich verwende AngularJS v1.7.5 . In meinem Controller habe ich folgenden Code verwendet, um einen String in Kleinbuchstaben zu konvertieren:

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

Fügen Sie $ filter in den Controller ein und verwenden Sie diesen zur Konvertierung in Kleinbuchstaben.

0
Tapash

Eine andere geeignete Lösung wäre, textAngular durch testAngularJs als vorgeschlagen hier zu ersetzen.

npm install textangularjs

0
Lunin Roman

wenn Sie anglejs mit TypeScript und einem Linter (in meinem Fall tslint + standard) verwenden, wäre eine korrekte Problemumgehung:

if (!angular.lowercase) (angular as any).lowercase = (text: string) => angular.isString(text) ? text.toLowerCase() : text
0
Gullfaxi171

Bei der Aktualisierung auf Winkel 1.7.5 fand ich ein ähnliches Problem. Meine Lösung bestand in der Aktualisierung von Winkel-Sanitize. Das Problem wurde behoben Winkel-Sanitize

0