Это не сработает. Сначала вы пытаетесь поместить целую HTML страницу в div. Во-вторых, вы должны сначала запустить сценарии в своем компоненте, а затем загрузить html
в компоненте html. Вы можете поместить в app.component. html или любой другой компонент, который вы создаете в Angular. Я бы посоветовал вам создать новый и импортировать в ваш компонент приложения
<p>plot come below...</>
<div id='myDiv'><!-- Plotly chart will be drawn inside this DIV --></div>
, если вы не можете поместить скрипт в индекс. html, как предложено Çağrı TAÇYİLDİZ
, или попробуйте этот метод:
import { Component, OnInit} from '@angular/core';
import { DomSanitizer, SafeHtml} from '@angular/platform-browser';
@Component({
selector: 'app-data-decomposition',
templateUrl: './data-decomposition.component.html',
styleUrls: ['./data-decomposition.component.css']
})
export class DataDecompositionComponent implements OnInit {
constructor() { }
public loadScript(url) {
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);
}
ngOnInit(){
this.loadScript('https://cdn.plot.ly/plotly-latest.min.js');
}
}
тег сценария, который вы можете поместить в /data-decomposition.component.html, но я предлагаю вам добавить в индекс. html, или .. вы можете сохранить новый файл js и импортируйте его в индекс. html или используйте метод loadScript в классе для его импорта.
<script type="text/javascript">
var data = [
{
x: ['giraffes', 'orangutans', 'monkeys'],
y: [20, 14, 23],
type: 'bar'
}
];
Plotly.newPlot('myDiv', data);
</script>