angularjsとtypescriptを使用してWebアプリを構築しようとしていますが、コントローラーの1つにサービスを注入しようとして完全に行き詰まっています。
サービス
var mod= angular.module("servicemodul", []);
class Service
{
http: ng.IHttpService;
q: ng.IQService;
private user: User;
static $inject = ["$http", "$q"];
constructor($http: ng.IHttpService, $q:ng.IQService)
{
}
}
mod.service('Service',["$http", "$q", function ($http, $q) {
return new Service($http, $q);
}]);
コントローラ
angular.module("app", ["servicemodul"])
class MainController
{
scope: ng.IScope;
http: ng.IHttpService;
service: Service;
static $inject = ["$scope", "$http", "Service"];
constructor($scope: ng.IScope, $http: ng.IHttpService, service: Service)
{
this.http = $http;
this.scope = $scope;
this.Service= service;
(<any>this.scope).Main = this;
}
public Init()
{
}
}
実際のページを読み込むと、開発者コンソールに次のように表示されます。
Unknown provider: ServicePorvider <- Service
問題は、srevice がモジュールに登録されている部分である必要があります。既に module.factory() メソッドを試しましたが、同じエラーが発生します。また、生成されたすべての js ファイルが正しい順序 (コントローラーの前にサービス) で読み込まれることも確認しました。
別の小さな質問: サービスとコントローラーに異なるモジュールを用意することは理にかなっていますか、それともすべてを 1 つのモジュールに入れることは可能ですか (アプリ全体が小さいと仮定して)