Ich bin fest (wahrscheinlich auf einige dumme Fehler) versuchen, eine Direktive arbeiten mit einer Leinwand.Einfache Leinwand in angularjs Direktive
Wenn ich meinen Code ausführen, bekomme ich eine element.getContext is not a function
, die seltsam scheint, da mein Element tatsächlich ein HTMLcanvasElement ist.
Dies ist meine Richtlinie
.directive('pitchCanvas', function() {
function link(scope, element, attrs) {
console.info('element: ' + element);
var ctx = element.getContext('2d');
ctx.font = "30px Arial";
ctx.fillText("Hello World", 10, 50);
}
return {
restrict: 'E',
replace: true,
scope: true,
link: link,
template: '<canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;"></canvas>'
};
})
und dies ist ein fiddle, wo ich eine vereinfachte Version von meinem Code und KANN NICHT make Arbeit gelegt.
Jede Hilfe wird sehr geschätzt.
Great! aber warum? Ist das Element nicht schon die Leinwand? – David
Dies liegt daran, dass Element kein Knoten ist, anders als bei Abfragen mit nativem JavaScript. Es ist tatsächlich ein jqLite-Objekt (ähnlich wie jQuery-Objekt). Wie wir also ein jquery-Objekt in ein einfaches javascript-Objekt konvertieren, muss dieses auch konvertiert werden, um JavaScript-Funktionen zu verwenden – Kop4lyf