我正在使用业力进行单位测试我的角度指令。我从我的指令中删除了部分,直到我将它全部删除,但我显然遗漏了一些东西。 这是测试:
element = angular.element('<div ng-repeat="option in options">ASD</div>');
element = $compile(element)(scope);
expect(element.text()).toMatch('ASD');
为什么编译不运行ng-repeat?
编辑: 这是beforeEach:
var element;
var scope;
beforeEach(inject(function ($rootScope) {
scope = $rootScope.$new();
scope.options = [{}];
}));
答案 0 :(得分:0)
在beforeEach中执行此操作:
scope.$apply(function() {
. . . set up your scope here
element = $compile('<div ng-repeat="option in options">ASD</div>')(scope);
}
现在每个&#39;它&#39;您应该能够看到编译的元素。
这里的关键是:
不要编译angular.element(<html>)
,而是直接编译<html>
将其包裹在scope.$apply
中(如果没有包装,它可能会有效
之后只是调用它,但这是更合适的方式。)