typescriptを使用してangularjsを書き込もうとしていますが、今は止まっています。 AgeServiceという名前のサービスが1つあります。そのサービスにはcalculateAgeという名前の関数があります。私のコントローラにそれを呼んでいますが、私は以下に書いたエラーを受けています。角型サービスをコントローラで使用する方法 - タイプスクリプト
SERVICE.TS
var servicesModule = angular.module('services', []);
class AgeService {
static AngularDependency = [AgeService];
constructor(private $scope: ng.IScope) {
}
public calculateAge(birthdate: string) {
var today = new Date();
var dob = new Date(Date.parse(birthdate));
var years = today.getFullYear() - dob.getFullYear();
if (today.getMonth() < dob.getMonth() || (today.getMonth() == dob.getMonth() && today.getDate() < dob.getDate()))
years -= 1;
return years;
}
}
servicesModule.service('ageService', AgeService.AngularDependency)
CONTROLLER.TS
var controllersModule = angular.module('controllers', []);
class PersonController {
static AngularDependency = ['$scope', PersonController, 'ageService'];
constructor(private $scope: PersonScope, private ageService: AgeService) {
this.initController();
}
private initController() {
this.$scope.name = 'Berkin';
this.$scope.person = {
name: 'Berkin',
dob: '25-06-1995'
};
this.$scope.person.age = this.ageService.calculateAge(this.$scope.person.dob);
}
}
controllersModule.controller('personController', PersonController.AngularDependency);
HTML
<h4 ng-controller="personController">{{name}} {{person.age}}</h4>
ERROR
@Rahulが言ったようにのおかげで...
なぜ角度2で角度1を使用していますか? –
私は角度2で角度1を使用していないと思います。その角度は1だけですが、TSで書かれています。彼は最終的に彼のindex.html – Rahul
で.jsファイルを参照する必要がありますなぜ 'PersonController.AngularDependency'だけが' PersonController'だけがうまくいくのでしょうか? – Rahul