Как можно протестировать контроллер с полномочиями разрешения? Это порождает ошибку: Неизвестный поставщик: InitProvider, во время тестирования, понятно. Как я могу проверить его?
Я использую свойство init в конфигурации маршрута для загрузки данных и передачи их вместе с контроллером при создании контроллера, поэтому маршрут не изменяется до загрузки данных.
$routeProvider
.when('/topic/:topic_id/content/:content_id', {
templateUrl: 'views/content.html',
controller: 'ContentCtrl',
resolve: {
init: ContentCtrl.init
}
});
Является ли шаблон полностью неправильным в первую очередь?
'use strict';
var ContentCtrl = ['$scope', '$location', '$routeParams', 'init', function ($scope, $location, $routeParams, init) {
$scope.contents = init.contents;
}];
ContentCtrl.init = ['$q', 'app_config', '$log', '$timeout', function ($q, app_config, $log, $timeout) {
var defer = $q.defer();
$log.log("ContentCtrl loading..");
$timeout(function() {
defer.resolve({contents: [
{message: 'Hello!'}
]});
$log.log("ContentCtrl loaded.");
}, 2000);
return defer.promise;
}];
angular.module('studentportalenApp').controller('ContentCtrl', ContentCtrl);
Я хочу инкапсулировать весь контроллер внутри .controler('ContentCtrl', function() { ... })
, но еще не понял, как это делается правильно, чтобы сделать init доступным в конфигурации маршрута.