首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Vue安装的钩子中未定义TradingView

在Vue安装的钩子中未定义TradingView
EN

Stack Overflow用户
提问于 2018-10-10 21:46:22
回答 2查看 1.1K关注 0票数 1

我不知道是否应该在这里或其他地方提问,但我正在使用tradingview库,它对我来说是有效的,但不是我想要的方式。

根据文档,我将代码放入vue中的index.html文件中,在脚本标记和我的tradingview works下,但是我想将这段代码放在mounted下,但我得到了这个错误:

挂载钩子中出现

错误:“未定义ReferenceError: TradingView”

以下是index.html文件中有效的代码示例:

代码语言:javascript
复制
<script type="text/javascript" src="/charting_library/charting_library.min.js"></script>
<script type="text/javascript" src="https://d33t3vvu2t2yu5.cloudfront.net/tv.js"></script>
<script>

function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

TradingView.onready(function() {
  var widget = new TradingView.widget({
    symbol: 'Bitfinex:ETHUSD',
    interval: '30',
    theme: 'Dark',
    style: '1',
    container_id: "tv_chart_container",
    library_path: "/charting_library/",
    locale: getParameterByName('lang') || "en",
    width: '100%',
    height: '600px',
    debug: false,
    preset: "mobile"
  });

})

下面是安装在我的vue文件中的代码:

代码语言:javascript
复制
mounted () {
TradingView.onready(function() {
  new TradingView.widget({
    symbol: 'Bitfinex:ETHUSD',
    interval: '30',
    theme: 'Dark',
    style: '1',
    container_id: "tv_chart_container",
    library_path: "/charting_library/",
    locale: this.getParameterByName('lang') || "en",
    width: '100%',
    height: '600px',
    debug: false,
    preset: 'mobile'
  })
})
}

有人知道为什么这里没有定义TradingView吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-12 03:49:11

如果有人会有同样的问题,所以对我来说,setTimeout做到了这一点。代码如下:

代码语言:javascript
复制
mounted () {
  setTimeout(function() {
   // TradingView code
  }, 1000)
}
票数 1
EN

Stack Overflow用户

发布于 2018-10-10 22:06:11

您没有使用vue脚本,因此请按如下方式添加它:

代码语言:javascript
复制
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>

检查以下工作代码:

代码语言:javascript
复制
new Vue({
  el: '#app',

  data() {
    return {
   
     
     }
  },
 mounted () {
TradingView.onready(function() {
  new TradingView.widget({
    symbol: 'Bitfinex:ETHUSD',
    interval: '30',
    theme: 'Dark',
    style: '1',
    container_id: "tv_chart_container",
    library_path: "/charting_library/",
    locale: this.getParameterByName('lang') || "en",
    width: '100%',
    height: '600px',
    debug: false,
    preset: 'mobile'
  })
})
}
  });
代码语言:javascript
复制
<script type="text/javascript" src="/charting_library/charting_library.min.js"></script>
<script type="text/javascript" src="https://d33t3vvu2t2yu5.cloudfront.net/tv.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>
<script>

function getParameterByName(name) {
name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}

</script>
<div id="app">
</div>

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52741721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档