AngularJS с неизвестным поставщиком Karma: $routeProvider
Я получаю хорошо документированную ошибку ниже, пытаясь запустить Angular.JS app через карму:
[$injector:unpr] Unknown provider: $routeProvider
JS фактически генерируется из ClojureScrpit с использованием purnam. Но, глядя на сгенерированный 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", который, похоже, является общей причиной. Моя карма.конф.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'
],
И я вижу загрузку углового маршрута в запуске karma. Любая помощь будет очень признательна.
3 ответа:
Это, кажется, работает по адресу:
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; }]);
Вот еще одна попытка!
angular.module('newsApp').config(['$configName', '$routeProvider', function newsAppConfig(config, $routeProvider) {}]);
Надеюсь, это поможет
У меня была та же проблема, и это было мое решение. Как вы можете видеть в файле karma.конф.JS массив javascript с именем 'files []' включает папку /test/mock/**/*js. Вы можете добавить в папку "потешное" файл модули.JS. В этом файле добавьте следующую строку;
'use strict'; angular.mock.module('ngRoute', []);
Для угловой.издеваться.модуль ('ngRoute', []); должен сделать трюк. добавьте дополнительные модули для макета в этот файл, если это необходимо.