我正在尝试使用$compile
为Jasmine测试编译 ui-grid 。当我使用$scope
作为控制器的可通过参数时,它工作正常。但是,我正在迁移到vm
。这在编译 ui-grid 时导致$compile
失败。
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();
当 ui-grid javascript被逐步执行时,这样做会给我一个cannot read property 'data' of undefined.
的错误。
我还尝试将控制器传递给$ compile,改为使用controller.grids.grid1
,而rootScope.$digest()
代替$apply()
。
我是否遗漏了某些东西,或者我是否错误地解决了这个问题?
答案 0 :(得分:0)
好的,所以我找到了问题的答案。
This answer在另一个问题上帮助我得到答案。
var rootScope = $rootScope;
var controller = $controller(/**controller stuff**/);
rootScope.vm = controller;
$compile('html to compile')(rootScope);
rootScope.$apply();
有了这个,我能够在不使用$scope
的情况下编译。