2017-05-07 14 views
9

Im szuka sposobu, aby uzyskać dostęp do zmiennej z zewnętrznego pliku js, które zawarłem w folderze aktywa/danychJak dołączyć plik JS w jonowej 3

poniżej to, co starałem

umieszczone test.js w obrotowe/katalogów danych

w test.js dodano zmienną testvar = "heloo from external js";

dodany znacznik skryptu w src/index.html<script src="assets/data/test.js"></script>

w app.component.ts Dodałem tę linię po imporcie; declare var testvar: any;

w konstruktora dodaje tej linii zalogować wartości console.log(testvar);

wynik błąd: ERROR ReferenceError: testVar nie jest zdefiniowana

tak, to w jaki sposób mogę korzystać js zmienna w maszynopisie?

Odpowiedz

11

To rozwiązanie działa tylko dla mnie

Put the import js in src/index.html header tag, before the build/polyfills.js and build/main.js (they are in body tag);

Przykład: Stworzyłem plik src/assets/test.js z var testvar, sprowadzony w src/index.html a następnie w src/app/app.component.ts oświadczył declare var testvar;.

test.js

var testvar = "Hello from external js"; 

index.html

... 
    <link rel="icon" type="image/x-icon" href="assets/icon/favicon.ico"> 
    <link rel="manifest" href="manifest.json"> 
    <meta name="theme-color" content="#4e8ef7"> 

    <!-- cordova.js required for cordova apps --> 
    <script src="cordova.js"></script> 
    <script src="assets/js/test.js"></script> //here, not in body 
... 

app.componet.ts

declare var testvar; 

@Component({ 
    templateUrl: 'app.html' 
}) 
export class MyApp { 
    @ViewChild(Nav) nav: Nav; 
    constructor(private statusbar : StatusBar, splashScreen: SplashScreen) { 
    alert(testvar); 
... 
1

usunąć go z index.html i używać go tak:

import from '../assets/data/test'; 
+0

błąd zniknął? ale jak uzyskać dostęp do varibale? – rashidnk

+0

console.log (testvar); jest niezdefiniowany – rashidnk

+0

Test jest teraz var, not testvar – misha130

2

Aby rozwinąć na odpowiedź misha130 użytkownika. Będziesz musiał zaimportować go do pliku, który chcesz:

import * as test from '../assets/data/test' 

W ten sposób masz dostęp do zmiennej testowej.

console.log(test.testvar);