当我尝试进行测试时出现此错误
Error: [$injector:unpr] Unknown provider: $translateProvider <- $translate
我将 karma 与 requirejs 一起使用。
loadingCtrlSpec.js
define([
'angular',
'angular-mocks',
'app',
'angular-translate'
], function(angular, mocks, app) {
'use strict';
describe('loadingCtrl', function(){
var ctrl, scope, translate;
beforeEach(mocks.module('TestApp'));
beforeEach(inject(function($injector){
scope = $injector.get('$rootScope').$new();
translate = $injector.get('$translate');
}));
it("contains spec with an expectation", function() {
expect(true).toBe(true);
});
});
});
正在加载Ctrl.js
define(['angular'], function (angular) {
'use strict';
angular.module('TestApp', [])
.controller('loadingCtrl', ['$scope', '$translate', function($scope, $translate) {
$translate(['build.DEFAULT_EMAIL_SUBJECT','build.DEFAULT_EMAIL_NOTES']).then(function (translations) {
$scope.title = translations["build.DEFAULT_EMAIL_SUBJECT"];
$scope.notes = translations["build.DEFAULT_EMAIL_NOTES"];
});
}]); })
如果我不使用 Angular-translate ($translate) 一切正常,所以我认为问题不是来自 karma.conf.js 或 test-main.js (karma 的 require.conf)。
最佳答案
您的 TestApp 模块需要将 pascalprecht.translate 模块指定为依赖项。另外,在定义主模块时,请务必包含 Angular-translate 作为依赖项,以便加载相关脚本:
define(['angular', 'angular-translate'], function (angular) {
angular.module('TestApp', ['pascalprecht.translate']);
});
关于javascript - 错误 : Unknown provider - Karma, requirejs, Angular ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24905000/