编辑:由于大多数评论迄今为止给了我的TypeScript解决方案,我觉得我需要重复一遍:使用
JavaScript ES5.
我想创建一个canvas组件,其中我根据bound属性绘制数据.如何使用JavaScript在Angular2中执行此操作?
我使用角度1的方法是在指令中获取元素引用,但是我不知道这应该如何完成.
这是一种似乎有效的方法,但我觉得这样做之后要洗手:
(function (app) { app.DrawingComponent = ng.core .Component({ selector: 'my-drawing',template: '<div><canvas id="{{randomId}}"></canvas></div>' }) .Class({ constructor: function () { this.randomId = "canvas" + Math.random(); },ngAfterViewInit: function() { var canvas = document.getElementById(this.randomId); console.log(canvas); } }); })(window.app || (window.app = {}));
解决方法
引用的TS
solution和ES5之间的唯一区别就是调用ViewChild
而使用TS,您可以直接使用注释@ViewChild,在ES5中,您必须使用组件中的queries参数
app.DrawingComponent = ng.core .Component({ selector: 'my-drawing',template: '<div><canvas #myCanvas></canvas></div>',// Check here! This is important! queries : { myCanvas : new ng.core.ViewChild('myCanvas') } }) .Class({ constructor: function () {},ngAfterViewInit: function() { console.log(this.myCanvas); } });
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。