Mahmoud
Mahmoud

Reputation: 23

I get an error in CreateJS: "createjs is not defined"

I have a problem with creatJS I hope you can help.

 var stage = new createjs.Stage(canvas);

I got this error :

angular.js:13642 ReferenceError: createjs is not defined. even thought i get the EaselJS in my bower-components.

Thanks

Upvotes: 1

Views: 4187

Answers (3)

tsveti_iko
tsveti_iko

Reputation: 7982

I had a similar problem - in my case I added the createjs-module npm package for webpack (I use it in the Laravel wabpack mix). It appeared that there was an issue with the scope, so I had to ensure that createjs is global. So you can try to do the following:

  1. Install the npm module (in the console)

    npm install createjs-module --save
    
  2. Initialize the createjs (in your js file)

    this.createjs = {};
    
  3. Make createjs global (in your js file)

    window.createjs = this.createjs;
    
  4. Import the module (in your js file)

    require('createjs-module');
    

And now you can use it as usual :)

Reference: CreateJS GitHub Issues

Upvotes: 2

Mahmoud
Mahmoud

Reputation: 23

I just get some tests on it and i verify if the library EaselJS which is used for createjs is injected but it was not injected in the Bower.json file. so i had to injected manually in the bower.json file and it's working.

Upvotes: 0

Olivier Boissé
Olivier Boissé

Reputation: 18113

I assume createjs is defined in the window object. To be accessible in angular js you need to make it injectabled like this :

  angular.module('myApp', [])
  .constant('createjs', window.createjs)

Then you can inject it into your controller for example :

controller: function(createjs) {
  var stage = new createjs.Stage(canvas);
}

You can also refer to it by using $window :

controller: function($window) {
  var stage = new $window.createjs.Stage(canvas);
}

Upvotes: 1

Related Questions