我的应用使用requirejs和angularjs。 我正在使用 text!来加载我的模板(以便在我的指令中不使用templateURL)。一切正常 - 除非其中一个指令在其模板中包含图像。
我现在正尝试在模板中使用图标设置我的测试新指令,但没有成功。 例如,我有以下指令模板:
<buttonDirective>
<md-icon md-svg-src="/android.svg" alt="android "></md-icon>
</buttonDirective>
Karma对我大喊“正在调用”/android.svg“(已知的”GET“错误:意外请求:GET IMAGEFILEPATH)。
我试图将我的图像文件添加到karma配置中,但这并没有解决问题。
除了不使用md-icon之外还有什么方法吗? (当我将m-d图标更改为简单图像时,它可以正常工作,所以我想问题是md-icon指令正在使用对svg文件的异步调用,而Karma讨厌那个...)。
答案 0 :(得分:3)
我通过使用$httpBackend
模拟请求解决了这个问题:
beforeEach(inject(function(_$compile_, _$rootScope_, _$httpBackend_) {
$compile = _$compile_;
$rootScope = _$rootScope_;
$httpBackend = _$httpBackend_;
$httpBackend
.whenGET('images/ic_forward_24px.svg')
.respond('');
$httpBackend
.whenGET('images/ic_backward_24px.svg')
.respond('');
$rootScope.$digest();
}));
答案 1 :(得分:2)
你可以完全嘲笑指令:
module('app', function ($provide) {
$provide.factory('mdIconDirective', function () {
return angular.noop;
});
});