Я реализую простое угловое приложение с машинописным текстом.
Я передаю служебную ссылку на контроллер, но когда я пытаюсь вызвать метод службы, я получаю исключение, если ссылка на службу не определена. Модуль "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]);
}
приложение.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