Skip to content Skip to sidebar Skip to footer

Correct Way Of Wrapping Javascript Class In Angularjs Module And Inject Angular Services

Inside an AngularJS module I'm developing, I have a Canvas class defined as: angular.module('myModule', []) .factory('Canvas', function() {return Canvas;}); var Canvas = function(

Solution 1:

I figured it out:

angular.module("myModule", [])
.factory("Canvas", ["$q", function(q) {
    Canvas.prototype.q = q;
    returnCanvas;
}]);

varCanvas = function(element, options) {
    console.log(thisinstanceofCanvas, typeofthis.q !== "undefined");
};

This logs: true true.

Solution 2:

I create Canvas service like this and is work:

var app = angular.module('myModule', []);

app.factory("Canvas", ["$q", function($q) {

    varCanvas = function(element, options) {
        this.q = $q;

        this.init();
        console.log(this.q, element, options);
    }
    Canvas.prototype.init = function() {/*...*/};
    Canvas.prototype.otherMethod = function() {/*...*/};

    returnCanvas;
}]);

app.controller('MainCtrl', ['$scope', 'Canvas', function($scope, Canvas) {
    console.log( newCanvas().q );  
}]);

Also you can see this on Pluncer here

Post a Comment for "Correct Way Of Wrapping Javascript Class In Angularjs Module And Inject Angular Services"