AngularJS与Karma Unknown提供者:$ routeProvider

时间:2014-05-07 20:12:52

标签: javascript angularjs karma-jasmine

我在尝试通过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启动时的角度路线加载。任何帮助将不胜感激。

3 个答案:

答案 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',[]);应该做的伎俩。如有必要,在此文件中添加更多模块以进行模拟。