我有一个TypeScript类和一个JavaScript控制器。 TypeScript类作为服务工作,而JavaScript控制器需要Typescript类才能使用它。我的问题:我该怎么做?
思考:我知道AngularJS javascript控制器不允许import
语句,所以是否可以通过依赖注入来访问TypeScript类及其公共内容?
Javascript控制器:
(function() {
'use strict';
angular
.module('testModule')
.controller('testModule.TestCtrl', TestCtrl);
TestCtrl.$inject = [
'testService' // <--- inject here? Note: not sure about this
];
function TestCtrl(testService) {
var ctrl = this;
ctrl.$onInit = function() {
// do stuff
};
ctrl.useTestService = function() {
this.result = testService.makeItRain();
};
}
})();
&#13;
打字稿服务
import { SomeStuffThatIsNeeded } from 'some/folder/structure';
export class TestService {
static $name = 'TestService';
static $inject = ['$window', '$location'];
constructor(private $window: any, private $location: any) {
}
makeItRain() {
this.doTheWaterDance();
}
private doTheWaterDance(): string {
return 'get creative!'
}
}
&#13;
答案 0 :(得分:0)
简短的回答,是的。您需要做的就是使用Angular as a Service注册该类。
import { TestService } from './TestService';
angular
.module('testModule')
.service('testService', TestService);