2016-03-21 7 views
1

XMLHttpRequestを使用してPOSTリクエストを作成しようとしていますが、xhrリクエストが成功した場合は別のコンポーネントにリダイレクトします。上記のコードは正常に実行さAngular2 Javascriptを使用して別のコンポーネントにリダイレクトする方法XMLHttpRequest?

import {Component, Inject, Injectable, OnInit} from 'angular2/core' 
import {FORM_DIRECTIVES, NgForm, ControlGroup, FormBuilder, Control, CORE_DIRECTIVES, NgIf} from 'angular2/common' 
import {HTTP_PROVIDERS, Http} from 'angular2/http' 
import {ROUTER_DIRECTIVES, Router} from 'angular2/router' 

export class StudentAdmissionForm{ 
    constructor (public router: Router){ 
    } 

    makeFileRequest(data){ 

      var url = this.base_path_Service.base_path_student()+"student/"; 

      return new Promise((resolve, reject) => { 

       var formData: any = new FormData(); 
       var xhr = new XMLHttpRequest(); 

       formData.append("image", this.studentDetails.image);   
       formData.append("first_name",this.studentDetails.first_name); 
       formData.append("middle_name",this.studentDetails.middle_name); 

       console.log(formData); 

       xhr.open("POST", url, true); 
       xhr.setRequestHeader("Authorization", 'Bearer ' + localStorage.getItem('id_token')); 
       xhr.send(formData); 
       xhr.onreadystatechange=function() 
        { 
         console.log("status " + xhr.status); 
         if(xhr.readyState === XMLHttpRequest.DONE && xhr.status == 201){ 
          toastr.success('Created !'); 
          var res = JSON.parse(xhr.responseText); 
          this.router.navigate(['../PreviousDetailsCmp', {first_name:res.student_id, student_id:res.id}]); 
         } 

        } 
    } 
} 

は、ここに私のコードです。しかし、私の質問は、ターゲットにリダイレクトするために、angular2またはjavascriptで何をすることができるかです。

私は、エラー、次のrouter.navigateが、クロムショーを使用:

EXCEPTION: TypeError: Cannot read property 'navigate' of undefined 

私もwindow.location = '/sidenav/PreviousDetailsCmp';を試してみましたが、その作業はありません。あなたが=>代わりのfunctionを使用する必要が

答えて

関連する問題