解決プロパティを使用してコントローラーをテストするにはどうすればよいですか? エラーがスローされます:不明なプロバイダー: 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 を使用できるようにするためにこれを正しく行う方法をまだ理解していません。