首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在angular 6中添加Vexflow

在angular 6中添加Vexflow
EN

Stack Overflow用户
提问于 2018-10-11 14:35:09
回答 1查看 324关注 0票数 0

我正在尝试将vexflow添加到我的angular 6应用程序中...

我尝试在我的typings.d.ts文件中添加这一行

代码语言:javascript
复制
declare var Vex: any;

和我的angular.json中的vexflow-min.js

代码语言:javascript
复制
  "scripts": [
             ...
             "./node_modules/vexflow/releases/vexflow-min.js",
             ...
            ],

我正在尝试在app.component.ts中呈现一个元素

代码语言:javascript
复制
  ngOnInit(){
      var div = document.getElementById("vexflow-test")
      var VF = Vex.Flow;
      renderer = new VF.Renderer(div,VF.Renderer.Backends.SVG);
  }

我可以看到Vex已正确加载(console.log(Vex)),但我收到一个错误,告诉我渲染器未定义

代码语言:javascript
复制
AppComponent_Host.ngfactory.js? [sm]:1 ERROR ReferenceError: renderer is not defined
EN

回答 1

Stack Overflow用户

发布于 2018-10-11 14:57:33

好的,现在可以用了

代码语言:javascript
复制
   public VF;
   onNgInit(){
        var div = document.getElementById("vexflow-player")
        this.VF = Vex.Flow;
        var renderer = new this.VF.Renderer(div,this.VF.Renderer.Backends.SVG);
        renderer.resize(500, 500);
        var context = renderer.getContext();
        context.setFont("Arial", 10, "").setBackgroundFillStyle("#eed");
        var stave = new this.VF.Stave(10, 40, 400);
        stave.addClef("treble").addTimeSignature("4/4");
        stave.setContext(context).draw();
     }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52753703

复制
相关文章

相似问题

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