javascript - 如何在离子或角度页面中显示自定义 javascript 小部件
问题描述
我正在创建一个离子应用程序,我想在页面上显示一个小部件但无法显示(我不确定在哪里以及如何添加片段)。
下面是小部件的代码,这里是链接https://www.tradingview.com/widget/market-movers/。
谁能告诉我如何在角度或离子页面中添加此类嵌入式小部件?
<!-- TradingView Widget BEGIN -->
<div class="tradingview-widget-container">
<div class="tradingview-widget-container__widget"></div>
<div class="tradingview-widget-copyright"><a href="https://in.tradingview.com/markets/stocks-india/market-movers-gainers/" rel="noopener" target="_blank"><span class="blue-text">Stock Market</span></a> by TradingView</div>
<script type="text/javascript" src="https://s3.tradingview.com/external-embedding/embed-widget-hotlists.js" async>
{
"exchange": "BSE",
"showChart": true,
"locale": "in",
"largeChartUrl": "",
"width": "400",
"height": "600",
"plotLineColorGrowing": "rgba(60, 188, 152, 1)",
"plotLineColorFalling": "rgba(255, 74, 104, 1)",
"gridLineColor": "rgba(242, 243, 245, 1)",
"scaleFontColor": "rgba(214, 216, 224, 1)",
"belowLineFillColorGrowing": "rgba(60, 188, 152, 0.05)",
"belowLineFillColorFalling": "rgba(255, 74, 104, 0.05)",
"symbolActiveColor": "rgba(242, 250, 254, 1)"
}
</script>
</div>
<!-- TradingView Widget END -->
解决方案
这是我在我的离子应用程序中所做的。
创建一个离子页面。在组件打字稿文件中,添加以下代码
import { Component, OnInit } from '@angular/core';
declare var TradingView;
@Component({
selector: 'app-stock-price',
templateUrl: './stock-price.page.html',
styleUrls: ['./stock-price.page.scss'],
})
export class StockPricePage implements OnInit {
periods = ['1M', '3M', '1Y', '5Y', 'All'];
stockChart: any;
constructor() { }
ngOnInit() {
this.createStockPriceWidget();
}
createStockPriceWidget() {
this.stockChart = new TradingView.MediumWidget(
{
container_id: 'tv-medium-widget',
symbols: [
[
'NASDAQ',
'AAPL'
],
],
interval: '3M',
greyText: 'Quotes by',
exchange: 'CSE',
gridLineColor: '#e9e9ea',
fontColor: '#83888D',
underLineColor: '#dbeffb',
trendLineColor: '#4bafe9',
width: '100%',
height: '100%',
locale: 'en',
}
);
}
}
在 HTML 文件中,
<ion-header>
<ion-toolbar>
<ion-title>Stock information</ion-title>
<ion-buttons slot="start">
<ion-menu-button>
<ion-icon color="light" removeSvgStroke src="./assets/icons/menu.svg"></ion-icon>
</ion-menu-button>
</ion-buttons>
</ion-toolbar>
</ion-header>
<ion-content>
<div class="tradingview-widget-container">
<div id="tv-medium-widget"></div>
<div class="tradingview-widget-copyright">
<a href="https://www.tradingview.com/symbols/NASDAQ-AAPL/" rel="noopener" target="_blank">
<span class="blue-text">Apple Quotes</span>
</a> by TradingView</div>
</div>
</ion-content>
在 scss 文件中,
.stock-segment {
ion-segment-button {
min-width: 40px;
font-weight: normal;
}
}
.stock-price-chart {
margin-top: 30px;
}
最后在Index.html文件之后<app-root></app-root>
,引用js文件如下
<script type="text/javascript" src="https://s3.tradingview.com/tv.js"></script>
推荐阅读
- linear-regression - 为什么 Excel 的 LINEST 函数和 NumPy 的 np.linalg.lstsq 的 y 截距不同?
- django - 需要相关名称参数
- android - 如何创建这样的图像?
- css - 保持 100vh 高度在父级内部溢出
- bash - 嵌套多个条件的bash文本解析
- python - 从 .txt 文件中删除引号
- jquery-ui - jquery可排序和click()函数的问题
- javascript - 第二次尝试创建画布并设置其宽度失败
- qt - Qt5/PyQt5 最佳实践
- linux-kernel - 我无法在我的 debian 9 中创建内核模块