Ich bin neu in eckig und bekomme immer den folgenden Fehler in der Konsole TypeError: name.replace is not a function
. Ich bin mir nicht sicher, was genau das verursacht, aber es scheint durch die ng-style
-Anweisung und vielleicht etwas mit dem camelCase verursacht zu sein?
Der Teil, den ich nicht verstehe, ist warum ng-style="isFrontView() || !matches && {'display': 'none'}"
den Fehler auslöst, aber ng-style="!isFrontView() || !matches && {'display': 'none'}"
wirft den Fehler nicht.
In einem Versuch, die Situation zu beheben, habe ich versucht, den camelCase aus dem Funktionsnamen zu entfernen, und bin in Kleinbuchstaben gegangen. Ich habe auch versucht, !!isFrontView()
zu verwenden, aber keiner schien die Fehlermeldung zu entfernen.
Weiß jemand, was die Ursache für diese Fehlermeldung und eine mögliche Fehlerbehebung ist?
HTML-Vorlage:
%Vor%Backend-Code:
%Vor%P.S. Selbst mit dem Konsolenfehler funktioniert alles noch normal.
Ihr potenzielles Problem ist auf die falsche Verwendung von ng-style
zurückzuführen. ng-style
setzt einen Watcher für den Ausdruck und legt den Stil des Elements mit Hilfe von jquery / jqlite element.css
fest . Und Inside element.css
css Attribut ( name
) wird in die Standard-Camel-Hülle konvertiert ( die Regex-Zeichenfolge ersetzt ersetzen ). In Ihrem speziellen Fall wird der Ausdruck als boolesch ( true
) anstelle eines Objekts ( ng-style
macht dies für jede Eigenschaft ) und boolean hat keine replace
-Eigenschaft (die für ein string -Objekt verfügbar ist) und deshalb versagt es. Sie können dies testen, indem Sie Ihren Ausdruck in eine Zeichenfolge konvertieren, indem Sie die Zeichenfolge verketten.
d. h. ng-style="'' + (isFrontView() || !matches && {'display': 'none'})"
Wenn Sie sich den Ausdruck ansehen, den Sie brauchen, um das Element zu verstecken und zu zeigen, können Sie % co_de verwenden % / ng-show
Direktiven, um das zu erreichen.
Dies ist eine späte Antwort, aber ich könnte anderen helfen, die das gleiche Problem haben wie ich. In meinem Fall ist der Fehler a.replace ist keine Funktion und schließlich habe ich den Grund gefunden. Es geschah aufgrund von ng-style und der Ausdruck war data-ng-style="isCompare==true ? {'max-height':'423'} : ***' '*** ....
, dass der Abstand zwischen einzelnen Qoutes den Fehler verursachte. Nach dem Entfernen von Speicherplatz ging der Fehler weg.