0
我正在使用打字稿實現一個簡單的角度應用程序。
我將一個服務引用傳遞給一個控制器,但是當我嘗試調用一個服務的方法時,我得到一個異常,說服務引用是未定義的。了 「dataAccessLayer」 模塊被正確地添加作爲依賴於 「clinicManager」 模塊(這是該控制器所屬的那一個)
我的服務:在打字稿中寫入的角度服務在控制器中是未定義的
module app.dal{
interface IDataAccessService{
get(id:number):app.Model.IPatient;
}
export class DataAccessService implements IDataAccessService{
private _db : Loki;
static $inject = ['Loki'];
constructor(private Loki:Loki) {
this._db = new Loki('./database/db.json',{
autosave: true,
autosaveInterval : 3000 // 3 secs
});
}
get(id:number):app.Model.IPatient {
// Implementation here...
}
}
angular.module('dataAccessLayer',['lokijs'])
.service('dataAccessService',['Loki',DataAccessService]);
}
控制器:
module app.PatientDetails{
interface IPatientDetails{
patient: app.Model.IPatient;
}
import accessLayer = app.dal.DataAccessService;
export class PatientDetailsCtrl implements IPatientDetails{
private dataAccessService: accessLayer;
static $inject = ['patient','dataAccessService'];
constructor(public patient:app.Model.IPatient, dataAccessService:accessLayer){
this.dataAccessService = dataAccessService;
// -> TypeError: Cannot read property 'get' of undefined
var patient = dataAccessService.get(1);
}
}
angular.module('clinicManager')
.controller('patientDetailsCtrl',['dataAccessService',PatientDetailsCtrl]);
}
app.js
angular.module('clinicManager',['ngMaterial','dataAccessLayer']);
的index.html
<!-- Application scripts-->
<script src="app.js"></script>
<!-- Services-->
<script src="DataAccessLayer/DataAccessService.js"></script>
<!-- Controllers-->
<script src="Controllers/PatientDetailsCtrl.js"></script>
腳本的順序是否正確? –
我用腳本順序更新了請求。在我眼中,順序是正確的。 – Francesco