Я хочу ввести самозанятое сообщение CalculatorService.ts
в самописном контроллере AngularJS с именем StringCalculatorController.ts
.Проблемы с инжектором обслуживания в контроллере AngularJS, написанные на языке TypeScript
Мой CalculatorService выглядит следующим образом:
/// <reference path="../typescript_definitions/angular.d.ts" />
module CalculatorModule {
export class CalculatorService {
// implementation stuff....
}
}
var app = angular.module("AngularCalculatorModule", []);
app.service("calculatorService", CalculatorModule.CalculatorService);
StringCalculatorController следует использовать CalculatorService в зависимости:
/// <reference path="../typescript_definitions/angular.d.ts" />
/// <reference path="CalculatorService.ts" />
module CalculatorModule {
export class StringCalculatorController {
private calculatorService:CalculatorModule.CalculatorService;
static $inject = ['calculatorService'];
constructor(calculatorService) {
console.log(calculatorService);
}
}
}
var app = angular.module("AngularCalculatorModule", []);
app.controller("StringCalculatorController",CalculatorModule.StringCalculatorController);
Это не работает. Это дает мне следующее сообщения об ошибке:
Error: [$injector:unpr] Unknown provider: calculatorServiceProvider <- calculatorService <- StringCalculatorController
http://errors.angularjs.org/1.4.8/$injector/unpr?p0=calculatorServiceProvider%20%3C-%20calculatorService%20%3C-%20StringCalculatorController
at angular.js:68
at angular.js:4334
at Object.getService [as get] (angular.js:4482)
at angular.js:4339
at getService (angular.js:4482)
at Object.invoke (angular.js:4514)
at extend.instance (angular.js:9182)
at nodeLinkFn (angular.js:8299)
at compositeLinkFn (angular.js:7731)
at compositeLinkFn (angular.js:7734)
Im начиная сценарий, следуя index.html
:
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script src="bower_components/angular/angular.js"></script>
<script src="src/CalculatorService.js"></script>
<script src="src/StringCalculatorController.js"></script>
</head>
<body ng-app="AngularCalculatorModule">
<div ng-controller="StringCalculatorController">
</div>
</body>
</html>
Может кто-нибудь, пожалуйста, помогите мне?
Это работает! Оно работает! Спасибо! –