2016-07-26 254 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文件中手動注入並且它正在工作。