Как передать значение из углового файла .ts в файл javascript .js - PullRequest
0 голосов
/ 27 ноября 2018

Я отображаю диаграмму Венна в angular2 + шаблон пользовательского интерфейса.Я делаю это, вызывая файл javascript, импортируя этот файл в код .ts.Но значения являются статическими, взятыми из одного и того же файла JavaScript.Как -

venn-example.js

 var sets = [ {sets: ['A'], size: 12},
             {sets: ['B'], size: 12},
             {sets: ['A','B'], size: 2}];

var chart = venn.VennDiagram();
d3.select("#venn").datum(sets).call(chart);

Но здесь я хочу, чтобы значения наборов исходили из файла angular.ts.

app.component.ts

const url = '../../../../assets/venn.example.js';

@Component({
  selector: 'app-node-venn',
  templateUrl: './node-venn.component.html',
  styleUrls: ['./node-venn.component.scss']
})


export class NodeVennComponent implements OnInit {

  loadAPI: Promise<any>;
  sets

  constructor() { }

  ngOnInit() {


  }


 //code to load Javascript.

  public buttonClicked() {
    this.loadAPI = new Promise((resolve) => {
        console.log('resolving promise...');
        this.loadScript();
    });
  }

  public loadScript() {
    console.log('preparing to load...')
    let node = document.createElement('script');
    node.src = url;
    node.type = 'text/javascript';
    node.async = true;
    node.charset = 'utf-8';
    document.getElementsByTagName('head')[0].appendChild(node);
  }


  seekAPI() {


    console.log("INSIDE  seekAPI() ")


            this.allAPI = [{ sets: ['channel'], size: 12 },
{ sets: ['incidentCity'], size: 12 },
{ sets: ['channel', 'incidentCity'], size: 2 }];

       }             
        }

      }

Я хочу, чтобы значениям, установленным из файла javascript venn.js, было присвоено значение this.allAPI из приложения.ts file

т.е.

 var sets = this.allAPI;

Пожалуйста, помогите.Как соотнести / передать такое значение.

1 Ответ

0 голосов
/ 27 ноября 2018

Вы можете использовать глобальные переменные.

При установке:

 window["allAPI"] = this.allAPI

При использовании js:

 var sets = window["allAPI"];

Не самый чистый подход. Но быстро.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...