2017-06-16 1 views
0

J'ai codé un fichier js pour renvoyer des valeurs aux fichiers ts, dans mon projet angulaire.Vous voulez accéder à une variable externe du fichier js dans le fichier angulaire 2 ts

var webGlObject = (function() { 
    return { 
    init: function() { 
     alert('webGlObject initialized'); 
    } 
    } 
})(webGlObject||{}) 
import { Component, OnInit } from '@angular/core'; 
import '../../../lib/jquery-3.2.1.min.js'; 
import '../../../server/getSummary.js'; 

declare var webGlObject: any; 

@Component({ 
    selector: 'mop-designer-dashboard', 
    templateUrl: 'mop-designer-dashboard.component.html', 
    styleUrls: ['mop-designer-dashboard.component.css'], 
}) 

export class MopDesignerDashboardComponent implements OnInit { 

    debugger; 
    scoreBoardList: any = []; 
    breadcrumb: any = []; 

    constructor() { 

    /* prepare breadcrumb */ 
    this.breadcrumb = [ 
     { 
     label: 'Mop Designer', 
     href: '/#/mop-designer' 
     } 
    ]; 

    debugger; 

    webGlObject.init(); 



    } 

    ngOnInit() { 
    console.log('test'); 
    } 
} 

mais déclarer var webGlObject: tout; ne crée aucun objet et je reçois l'erreur suivante:

> ZoneTask.invoke @ zone.js FAD3: 339 VM292602: 61 Erreur: Uncaught (en promesse): Erreur: Erreur dans: 0: 0 causée par: webGlObject n'est pas défini ReferenceError: webGlObject n'est pas défini à nouveau MopDesignerDashboardComponent

Répondre

0

Ceci est parce que vous créez comme une classe et en utilisant comme un objet. Essayez ceci: Put suivant dans le fichier js:

var webGlObject = function() { 
this.init= function() { 
    alert('webGlObject initialized');}} 

et créer une instance dans ts fichier:

declare var webGlObject: any; 
export class YourComponent{ 
constructor(){ 
    let wegObj = new webGlObject(); 
    wegObj.init(); 
    } 
}