2015-06-11 17 views
8

Ich erhalte die folgende Fehlermeldung, wenn ich versuche diese

var fbcanvas = $('#fbcanvas');

Dies ist der Fehler, den ich

ReferenceError: $ is not defined

meine JS Das ist zu erledigen Code

var feedbackModule = angular.module('feedbackModule', [ 'ui.bootstrap', 'dialogs' ]); 

feedbackModule.controller('feedbackDialog', function($scope, $rootScope, $timeout, $dialogs) { 
$scope.confirmed = 'You have yet to be confirmed!'; 
$scope.name = '"Your name here."'; 

$scope.sendFeedback = function() { 

html2canvas(document.body, { 
    onrendered: function(canvas) { 
    var data = canvas.toDataURL('image/png'), dlg = null; 

    dlg = $dialogs.create('js/plugin/vzfeedbacktool.html', 'feedbackToolController', { 
     imgdata: data 
    }, { 
     key: false, 
     back: 'static' 
    }); 
    dlg.result.then(function(name) { 
     $scope.name = name; 
    }, function() { 
     $scope.name = 'You decided not to enter in your name, that makes me sad.'; 
    }); 

    } 
}); 
}; // end launch 

}); 

feedbackModule.controller('feedbackToolController', ['$scope', '$modalInstance', function($scope, $modalInstance, data) { 

$scope.cancel = function() { 
$modalInstance.dismiss('canceled'); 
}; // end cancel 

$scope.save = function() { 
debugger; 
var fbcanvas = $('#fbcanvas'); 
var ctx = fbcanvas.getContext('2d'); 
var image = new Image(); 

image.src = data.imgdata; 
ctx.drawImage(image, 0, 0); 
}; // end save 

}]); 

Irgendeine Idee, wenn ich etwas verpasse? durch die Art und Weise, wenn ich versuche, diesen Code direkt in der Konsole auszuführen funktioniert es gut: S

Dank

+3

Sie haben jQuery nicht eingeschlossen – Phil

+1

@NitinVarpe 'angular.element'/jqLite funktioniert nicht mit Selektoren. Ich würde einfach '$ document [0] .getElementById ('fbcanvas')' – Phil

+1

Versuchen Sie, DOM-Manipulation in den Controllern zu vermeiden, da es nicht die * Winkel * ist. Verwenden Sie eine benutzerdefinierte Anweisung für diese Angelegenheit. – alesc

Antwort

2

Versuchen Sie folgendes:

var fbcanvas = document.getElementById('fbcanvas'); 

statt:

var fbcanvas = $('#fbcanvas'); 

prüfen wenn Daten undefined auch sind.

Verwandte Themen