這是我的服務。TypeScript服務中的角度功能未定義或未定義
export module cropyear_services {
//export interface ICropYearService {
// getFieldYearData(): any;
//}
export class CropYearService {
static $inject: string[] = ["$q", "$filter", "$httpBackend", "$http"];
constructor(private _q: ng.IQService, private _http: ng.IHttpService, private _filter: ng.IFilterService, private _$httpMock: ng.IHttpBackendService) { }
getFieldYearData = function() {
let deferred = this._q.defer();
let uri = endpoints.Endpoints.endpoints.fieldyears;
this._http.get(uri).then((fieldYearResultData: any) => {
let fieldYearData = fieldYearResultData.data[0].ResultSet;
deferred.resolve({ result: fieldYearData });
}).catch(() => {
deferred.reject();
});
return deferred.promise;
}
}
}
而這裏是我的控制器,我在調用服務方法。
/// <reference path="../../../../thirdparty/lodash/lodash.d.ts"/>
/// <reference path="../../../../thirdparty/angular-material/angular-material.d.ts"/>
/// <reference path="../../../../thirdparty/angular/angular.d.ts"/>
/// <reference path="../../../../thirdparty/angular-ui-router/api/angular-ui-router.d.ts"/>
/// reference path="./cropyear.service.ts"/>
/// reference path= "../../../../common/sharedData/TSModule/sharedData.ts'/>
import service = require('./cropyear.service');
import SharedDataFactory = require('../../common/sharedData/TSModule/sharedData');
export module cropyear_controllers {
export class CropYearController {
static $inject: string[] = ["$log", "$scope", "cropYearService"];
constructor(/*private _log: ng.ILogService,*/ public _scope: ng.IScope, public _cropYearService: service.cropyear_services.CropYearService
, public _sharedData: any, public fieldYears: any) {
this._sharedData = SharedDataFactory.sharedData_factories.SharedData;
}
loadYears() {
this._cropYearService.getFieldYearData()
.then((data: any) => {
this.fieldYears = _.uniq(_.pluck(data.result, 'CropYear'));
})
.catch(() => {
console.log('Error calling farm view service');
});
}
hangeCropYear(year: number) {
this._sharedData.selectCropYear(year);
}
}
}
Vs編譯沒有錯誤。當我嘗試提升loadYears()時,我在控制檯中得到Uncaught TypeError錯誤:this._cropYearService.getFieldYearData不是函數。任何人都可以指出我的錯誤在哪裏?
getFieldYearData = function(),應該是getFieldYearData:function() – Fals
我曾嘗試過,編譯器拋出需要類型錯誤。 – Aj1