我在尝试通过Karma运行Angular.js应用程序时收到了错误记录的错误:
[$injector:unpr] Unknown provider: $routeProvider
JS实际上是使用purnam从ClojureScrpit生成的。但是看看生成的JS,它看起来还不错:
var news = {app:{}};
news.app.newsApp = angular.module("newsApp", ["ngRoute"]);
angular.module("newsApp").config(["$routeProvider", function(a) {
a.when("/", {templateUrl:"views/main.html", controller:"MainCtrl"});
a.otherwise({redirectTo:"/"});
return a;
}]);
所以我正在传递' ngRoute',这看起来是常见的原因。我的karma.conf.js包括angular-route:
files: [
'app/bower_components/angular/angular.js',
'app/bower_components/angular-mocks/angular-mocks.js',
'app/bower_components/angular-resource/angular-resource.js',
'app/bower_components/angular-cookies/angular-cookies.js',
'app/bower_components/angular-sanitize/angular-sanitize.js',
'app/bower_components/angular-route/angular-route.js',
'app/scripts/*.js',
'app/scripts/**/*.js',
'test/mock/**/*.js',
'test/spec/**/*.js'
],
我看到了karma启动时的角度路线加载。任何帮助将不胜感激。
答案 0 :(得分:0)
这是另一次尝试!
angular.module('newsApp').config(['$configName', '$routeProvider', function newsAppConfig(config, $routeProvider) {}]);
希望这有帮助
答案 1 :(得分:0)
这似乎适用于:
http://plnkr.co/edit/9xEZm0z22ab2YL6kL1fT?p=preview
var news = {app:{}};
news.app.newsApp = angular.module("newsApp", ["ngRoute"]);
news.app.newsApp.config(["$routeProvider", function(a) {
a.when("/", {templateUrl:"views/main.html", controller:"MainCtrl"})
a.otherwise({redirectTo:"/"});
return a;
}]);
答案 2 :(得分:0)
我有同样的问题,这是我的解决方案。正如您在文件karma.conf.js中看到的那样,javascript数组名为' files []'包括文件夹/ test / mock / ** / * js。 您可以添加文件夹' mock'一个名为modules.js的文件。 在此文件中添加以下行;
'use strict';
angular.mock.module('ngRoute', []);
所以行angular.mock.module(' ngRoute',[]);应该做的伎俩。如有必要,在此文件中添加更多模块以进行模拟。