2015-06-15 1 views
2

У меня есть угловой вид, который унаследован от элемента ng-view.Угловое и CreateJS не находит элемент сцены

В файле вида у меня есть холст. Код управляется контроллером. Я хочу создать сцену для добавления элементов на холст.

Однако, когда я запускаю функцию createJS.Stage, этап создается всем, как null и без ограничений.

Я предполагаю, что элемент не получает привязан к сцене, но я не могу понять, почему

index.html

<ng-view  style='height: 100%;'></ng-view> 

template.html

<div class='middle' style="min-height:90%;height:90%"> 
<div class='col-lg-8'> 
<canvas id="demoCanvas" class='col-lg-11' style='margin-top:10px'></canvas> 
</div> 
</div> 

JS

app.controller('taskController',function($scope,$location,$routeParams,dataFactory){ 
    var stage = new createjs.Stage("demoCanvas"); 
    console.log(stage.getBounds()); 
    //bounds turn up as null as well as style and any other function that I run 
} 

ответ

1

Так получается, проблема в том, что DOM не полностью загружена, когда AngularJS контроллер запускается

Хитрость запустить его, как только DOM закончил загрузка является

app.controller('taskController',function($scope,$location,$routeParams,dataFactory){ 
    $timeout(function(){ 
     visualInspectionHandler(); 
    }); 
    function visualInspectionHandler(){ 
      var stage = new createjs.Stage("demoCanvas"); 
      console.log(stage.getBounds()); 
    } 
} 
+1

Если вы можете доступ к Canvas как часть созданного фрагмента HTML DOM, вы всегда можете передать это как ссылку вместо идентификатора (который просто использует поиск 'document.getElementById' в EaselJS). Это подход, который мы обычно применяем с помощью Backbone-приложений: 'new createjs.Stage (this. $ (". DemoCanvas "). Get (0))'; – Lanny

+0

@ Lenny благодарит, что работает тоже – cjds

 Смежные вопросы

  • Нет связанных вопросов^_^