2016-07-26 256 views
0

我遇到creatJS问题我希望你能帮忙。我在CreateJS中遇到错误:“createjs未定义”

var stage = new createjs.Stage(canvas); 

我得到这个错误:

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

感谢

+0

你能为我们提供的完整代码,请? – Mistalis

+0

这是我在控制器中的代码:var stage = new createjs.Stage(canvas); var image = new createjs.Bitmap(“app/common/views/weather/img/windrose.png”); stage.addChild(image); stage.update(); – Mahmoud

+0

您是否在控制台中发现任何错误?通常这是由不正确加载的脚本标记或类似引起的。 – Lanny

回答

0

我有一个类似的问题 - 在我的情况下,我添加了createjs-module npm包webpack(我用它在Laravel wabpack混合)。看起来这个范围有问题,所以我必须确保createjs是全球性的。所以,你可以尝试做如下:

  1. 安装NPM模块(控制台)

    npm install createjs-module --save 
    
  2. 初始化createjs(在你的js文件)

    this.createjs = {}; 
    
  3. 让createjs全球化(在您的js文件中)

    window.createjs = this.createjs; 
    
  4. 导入模块(在你的js文件)

    require('createjs-module'); 
    

现在你可以使用它像往常一样:)

参考:CreateJS GitHub Issues

1

我认为createjs窗口对象定义。要在角访问JS,你需要使它injectabled这样的:

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

然后,你可以把它注射到你的控制器,例如:

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

您也可以参考它通过使用$窗口:

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

谢谢,问题是easeljs我用于creatjs的库没有被注入到bower.json文件中...所以最后我将库注入到Bower文件中并且它工作。谢谢 – Mahmoud

0

我只是得到一些关于它的测试和验证我如果它用于createjs库EaselJS注入,但它并没有在Bower.json文件注入。所以我不得不在bower.json文件中手动注入并且它正在工作。