Ember.js和Canvas

abu*_*der 4 ember.js

您好我如何在Ember View中获得画布'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(); 
 }
});
Run Code Online (Sandbox Code Playgroud)

int*_*xel 5

按照您的示例,访问由tagNameember视图中的from 定义的元素的方法将如下所示:

var canvas = this.get('element');
var ctx = canvas.getContext('2d');
Run Code Online (Sandbox Code Playgroud)

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

这里有一个工作的jsbin.

希望能帮助到你