2016-08-10 7 views
0

コントローラから呼び出せるファクトリを作成しようとしています。 しかし、それもできません。angularjsを持つtypecriptファクトリ

マイpatientview.html:

<pThis is the patientsearch view.</p 
<button type="button" class="btn btn-large btn-block btn-default" ng-click="click()">button</button> 

マイpatientviewController:

module tsRisApp { 
export interface IPatientregistrationScope extends ng.IScope { 
click:any; 
data: any[]; 
} 
export class PatientviewCtrl { 
constructor (private $scope: IPatientregistrationScope) { 
    $scope.click = function(){ 
    let data = patientFactory().SearchPatients("Doe"); 
    } 
}  
} 
} 

angular.module('tsRisApp') 
    .controller('PatientViewCtrl', tsRisApp.PatientViewCtrl); 

そして、これが私のpatientFactoryです:

'use strict'; 

module tsRisApp { 
export function patientFactory() { 
    return new Patientfactory(); 
} 


export class Patientfactory { 
static $inject = ['$http', '$location']; 
http: ng.IHttpService; 
location: ng.ILocationService; 

constructor() { 
    } 

SearchPatients(searchString:string) { 
    let request = new Request(); 
    request.Compression = "no" 
    request.ServiceType = "SearchPatients" 
    request.SessionId = "SessionLessRequest" 
    request.Parameters = searchString; 
    let jsonRequest = JSON.stringify(request); 
    this.http.post("http://" +this.location +"request.php/", jsonRequest).then(function (response) { 
    return response.data; 
    }) 

} 
} 
} 

私は次のエラーを取得するボタンをクリックすると:

angular.js:13920 TypeError:未定義の 'post'プロパティを読み取ることができません

何が欠けていますか?あなたの助けのための おかげで、私はあなたのコンストラクタを信じる

答えて

1

が、それは次のようになります。

export class Patientfactory { 

static $inject = ['$http', '$location']; 

constructor (private http: ng.IHttpService, 
      private location: ng.ILocationService) {} 

SearchPatients(searchString: string) { 

    //Then you can access your http.post 
    this.$http.post() 

} 
関連する問題