2017-11-13 12 views
0

자스민 테스트를 위해 ui-grid를 컴파일하기 위해 $compile을 사용하려고합니다. 내가 $scope을 컨트롤러에 전달할 수있는 매개 변수로 사용했을 때는 정상적으로 작동했지만 멀리 vm으로 마이그레이션 중입니다. 이로 인해 $compile이 ui-grid를 컴파일 할 때 실패하게되었습니다. UI 그리드를 통해 강화되는 자바 스크립트 때이 방법을 수행

var rootScope = $rootScope; 
var controller = $controller('Controller', {stuff: stuff, other: other}); 
$compile('<div ui-grid="vm.grids.grid1" ui-grid-selection ui-grid-auto-resize></div>')(rootScope); 
rootScope.$apply(); 

나에게 cannot read property 'data' of undefined.의 오류를 제공합니다.

controller.grids.grid1을 대신 사용하여 컨트롤러를 $ compile에 전달하려고했지만 $apply() 대신 rootScope.$digest()을 사용했습니다.

누락 된 것이 있거나 잘못 가고 있습니까?

답변

0

그래, 내 질문에 대한 답변을 찾았습니다.

This answer 다른 질문에 답을 얻는 데 도움이되었습니다.

var rootScope = $rootScope; 
var controller = $controller(/**controller stuff**/); 
rootScope.vm = controller; 
$compile('html to compile')(rootScope); 
rootScope.$apply(); 

이렇게하면 $scope을 사용하지 않고 컴파일 할 수있었습니다.