Hey, ich baue eine Webseite mit eckigen. Das Problem ist, dass es bereits Dinge gibt, die ohne Winkel gebaut sind, und ich muss sie auch einbeziehen
Das Problem ist das.
Ich habe so etwas in meiner main.html:
<ngInclude src="partial.html">
</ngInclude>
Und meine partielle.html hat so etwas
<h2> heading 1 <h2>
<script type="text/javascript" src="static/js/partial.js">
</script>
Und meine partielle.js hat nichts mit anglejs zu tun. nginclude funktioniert und ich kann das HTML sehen, aber ich kann nicht sehen, dass die Javascript-Datei überhaupt geladen wird. Ich weiß, wie man das Firebug / Chrome-Dev-Tool verwendet, aber ich kann nicht einmal sehen, dass die Netzwerkanforderung gestellt wird. Was mache ich falsch?
Ich weiß, dass Angular eine besondere Bedeutung für das Skript-Tag hat. Kann ich es überschreiben?
Kurze Antwort: AngularJS ("jqlite") unterstützt dies nicht. Fügen Sie jQuery in Ihre Seite ein (bevor Sie Angular einfügen), und es sollte funktionieren. Siehe https://groups.google.com/d/topic/angular/H4haaMePJU0/discussion
quelle
Ich habe neemzys Ansatz ausprobiert, aber er hat bei mir mit 1.2.0-rc.3 nicht funktioniert. Das Skript-Tag würde in das DOM eingefügt, aber der Javascript-Pfad würde nicht geladen. Ich vermute, es lag daran, dass das Javascript, das ich laden wollte, aus einer anderen Domäne / einem anderen Protokoll stammte. Also habe ich einen anderen Ansatz gewählt, und das habe ich mir am Beispiel von Google Maps ausgedacht : ( Gist )
Ich hoffe es ist hilfreich für jemanden.
quelle
Ich habe diese Methode verwendet, um eine Skriptdatei dynamisch (innerhalb eines Controllers) zu laden.
quelle
Ab 1.2.0-rc1 funktioniert das nicht mehr. Weitere Informationen finden Sie in dieser Ausgabe , in der ich einen Kommentar veröffentlicht habe, der eine schnelle Problemumgehung beschreibt. Ich werde es auch hier teilen:
Nicht die beste Lösung aller Zeiten, aber hey, auch das Setzen von Skript-Tags in nachfolgende Ansichten. In meinem Fall muss ich dies tun, um Facebook / Twitter / etc. Zu nutzen. Widgets.
quelle
Mit ocLazyLoad können Skripte über Router (z. B. UI-Router) träge in die Vorlagen / Ansichten geladen werden. Hier ist ein Sniplet
quelle
Um Recaptcha dynamisch von einem zu laden, verwende
ui-view
ich die folgende Methode:In
application.js
:In
myPartial.client.view.html
:quelle
$(element)
warum brauchst du die$()
Syntax ? aus den ajs-Dokumenten 'Alle Elementreferenzen in Angular werden immer mit jQuery oder jqLite umbrochen' (wie das Elementargument in der Kompilierungs- / Verknüpfungsfunktion einer Direktive) - aus diesem und meinen anderen Erfahrungen heraus hatte ich erwartet, dass Sie das Element verwenden. append (...) `- obwohl ich am Ende nicht das war, was ich verwenden konnte - beim Testen war ich verwirrt, als ich diesen Teil sah und funktionierte nicht für mich, als ich versuchte, nur mit dem 'element.append' zu arbeiten. SyntaxLeider haben alle Antworten in diesem Beitrag bei mir nicht funktioniert. Ich bekam immer wieder folgenden Fehler.
Ich habe herausgefunden, dass dies passiert, wenn Sie Widgets von Drittanbietern (in meinem Fall Demandforce) verwenden, die auch zusätzliche externe JavaScript-Dateien aufrufen und versuchen, HTML einzufügen. Beim Betrachten der Konsole und des JavaScript-Codes fielen mir mehrere Zeilen wie folgt auf:
Ich habe JavaScript-Dateien von Drittanbietern (htmlParser.js und postscribe.js) verwendet von: https://github.com/krux/postscribe . Das hat das Problem in diesem Beitrag gelöst und gleichzeitig den obigen Fehler behoben.
(Dies war ein schneller und schmutziger Weg unter der engen Frist, die ich jetzt habe. Ich bin jedoch nicht mit der Verwendung der JavaScript-Bibliothek von Drittanbietern vertraut. Ich hoffe, jemand kann einen saubereren und besseren Weg finden.)
quelle
Ich habe versucht, Google reCAPTCHA explizit zu verwenden. Hier ist das Beispiel:
quelle