2017-11-17 1 views
2

Ich habe ein Thema von this Link heruntergeladen. Ich muss Skript und CSS in index.html Datei definieren. (Abschnitt Körper)Wie externe java-script-funktion in angular 5 aufrufen?

index.html

<body> 
    <app-root></app-root> 
    <script type="text/javascript" src="./assets/js/main.85741bff.js"></script> 
    <script type="text/javascript" src="./assets/js/common.js"></script> 
</body> 

Ich habe meine Funktion in common.js und nenne es aus main.85741bff.js Datei defind.

common.js (Funktion)

document.addEventListener("DOMContentLoaded", function (event) { 
    masonryBuild(); 
    navbarToggleSidebar(); 
    navActivePage(); 
}); 

Das Problem ist, dass ich in der Lage bin, die Funktion während Seite neu geladen zu nennen, aber die Funktion, während Inhalts Last nicht aufrufen kann.

Kann mir jemand helfen, dieses Problem zu lösen? Jede Hilfe wäre willkommen.

Antwort

0

Sie müssen die Reihenfolge ändern, in der Sie Ihre JavaSciprt-Dateien laden. Versuchen Sie, common.js vor main......js zu laden. Ihr Skript versucht, auf eine Funktion aus einer Datei zuzugreifen, die noch nicht geladen wurde. Versuchen Sie, nur diese zwei Zeilen des Codes zu wechseln:

<body> 
    <app-root></app-root> 
    <script type="text/javascript" src="./assets/js/common.js"></script> 
    <script type="text/javascript" src="./assets/js/main.85741bff.js">/script> 
</body> 
+0

Danke für die Antwort bu es funktioniert nicht !! – Milan

+0

Können wir den Inhalt dieser 'js' Dateien sehen? – VTodorov

+0

Welche js-Datei common.js oder main.85741bff.js? – Milan

0

In Angular4, 5 Projektordner, gibt es. Angular-CLI.JSON-Datei.

In der Datei finden Sie

"apps": [ 
    { 
    "scripts": [] 
    } 
] 
siehe

externen js Dateipfad in dem Feld drücken.

+0

Ja, ich habe es bereits versucht, aber es funktioniert nicht, während der Inhalt geladen wird. Es funktioniert gut mit dem Neuladen der Seite. Gedanken? – Milan

2

Sie können Javascript in der Angular-Anwendung verwenden.

Schritt 1. Erstellen Sie demo.js Datei in Vermögenswerte/javascript Ordner.

export function test1(){ 
    console.log('Calling test 1 function'); 
} 

Schritt 2. Erstellen Sie demo.d.ts Datei in Vermögenswerte/javascript Ordner.

export declare function test1(); 

Schritt 3. Verwenden Sie es in Ihrer Komponente

import { test1 } from '../assets/javascript/demo'; 
@Component({ 
    selector: 'app-root', 
    templateUrl: './app.component.html', 
    styleUrls: ['./app.component.css'] 
}) 
export class AppComponent { 
    constructor() { 
    console.log(test1()); 
    } 
} 

Hinweis: js und .d.ts Dateiname sollte gleich sein

0

Sie diese Methoden durch Fenster aufrufen können objekt-

document.addEventListener("DOMContentLoaded", function (event) { 
     window['navbarToggleSidebar'](); 
     window['navActivePage'](); 
}); 
+0

Es funktioniert gut mit dem Neuladen von Seiten, funktioniert aber nicht mit dem Laden bestimmter Inhalte. Gedanken? – Milan