4

嗨,我如何在 Ember 视图中获取画布“2d”上下文?以下代码不起作用。我得到了 dom 的 canvas 元素,但没有得到“2d”的上下文。

App.Canvas = Ember.View.extend({
 tagName: 'canvas',
 quader: function () {
        return this.get('controller.model');
 }.property('controller.model'),
 didInsertElement: function(){

     var canvas = this.$('#id'); // get the Element
     var ctx = canvas.getContext('2d'); // --> get Error

    // Filled triangle
    ctx.beginPath();
    ctx.moveTo(25,25);
    ctx.lineTo(105,25);
    ctx.lineTo(25,105);
    ctx.fill();

    // Stroked triangle
    ctx.beginPath();
    ctx.moveTo(125,125);
    ctx.lineTo(125,45);
    ctx.lineTo(45,125);
    ctx.closePath();
    ctx.stroke(); 
 }
});
4

1 回答 1

5

按照您的示例,访问由tagNameember 视图内部定义的元素的方法如下:

var canvas = this.get('element');
var ctx = canvas.getContext('2d');

this.get('element')tagName获取视图属性中定义的 DOM 元素,在您的情况下为canvas元素

这是一个工作jsbin

希望能帮助到你

于 2013-06-14T17:11:49.630 回答