2

我在下面尝试通过 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 包括角度路线:

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'
],

我在业力启动中看到了角度路径加载。任何帮助将不胜感激。

4

3 回答 3

0

这是另一个尝试!

angular.module('newsApp').config(['$configName', '$routeProvider', function newsAppConfig(config, $routeProvider) {}]);

希望这可以帮助

于 2014-05-07T20:15:32.770 回答
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;
}]);
于 2014-05-07T21:49:34.207 回答
0

我有同样的问题,这是我的解决方案。正如您在文件 karma.conf.js 中看到的,名为 'files[]' 的 javascript 数组包含文件夹 /test/mock/**/*js。您可以在“模拟”文件夹中添加一个名为 modules.js 的文件。在此文件中添加以下行;

'use strict';
 angular.mock.module('ngRoute', []);

所以 angular.mock.module('ngRoute', []); 应该做的伎俩。如有必要,在此文件中添加更多要模拟的模块。

于 2015-02-12T07:21:37.017 回答