Angular $ compile ui-grid用于没有$ scope的jasmine测试

时间:2017-11-13 21:02:15

标签: javascript angularjs angular ui-grid

我正在尝试使用$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()

我是否遗漏了某些东西,或者我是否错误地解决了这个问题?

1 个答案:

答案 0 :(得分:0)

好的,所以我找到了问题的答案。

This answer在另一个问题上帮助我得到答案。

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

有了这个,我能够在不使用$scope的情况下编译。