我目前正在尝试使用QUnit为我的Angular指令设置单元测试。在我尝试使用ngInclude指令之前,一切都很顺利。在测试中编译我的指令时,我现在收到以下错误:
未知提供商:$ rootElementProvider< - $ rootElement< - $ location< - $ anchorScroll< - ngIncludeDirective
只需更改我的指令模板:
<table>
<tr data-ng-repeat="row in rows">
<td data-ng-repeat="column in row.columns">{{ column.data }}</td>
</tr>
</table>
要:
<table>
<tr data-ng-repeat="row in rows">
<td data-ng-repeat="column in row.columns">{{ column.data }}</td>
</tr>
<tr data-ng-include="'footerRow.html'" />
</table>
足以启动错误。最简单的单元测试代码形式是:
QUnit.test('Directive renders something', function() {
var $injector = angular.injector(['ng', 'myModule']);
var $compile = this.$injector.get('$compile');
var $scope = $injector.get('$rootScope').$new();
// Build up the scope, call $compile, and get the error
var element = $compile('<div data-my-directive="" />')($scope);
});
我猜我错过了一些简单而明显的东西,但我一直盯着看太久了。请随时证明我是对的。
答案 0 :(得分:0)
我认为如果你把它放到一个JSFiddle中可能会有所帮助 - 你可能会看到这里发生了什么。
尝试更改此内容:
<tr data-ng-include="'footerRow.html'" />
到此:
<tr data-ng-include src="'footerRow.html'" />