2013-06-14 3 views
3

Привет, как я получаю контекст canvas 2d в Ember View? Следующий код не работает. Я получаю элемент холста dom, но не контекст '2d'.Ember.js and Canvas

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

После вашего примера, способ доступа к элементу, определяемый tagName изнутри вид Ember будет сделан так:

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

this.get('element') прибудет это элемент DOM определен в tagName свойства вид, в вашем случае canvas элемент

Здесь рабочий jsbin.

Надеюсь, это поможет

+0

Спасибо. Да, он отлично работает :) – abuder