2016-10-11 2 views
0

Я использую Angular2 и пользовательскую форму для создания маркера моей полосы. Приведенный ниже код правильно выполняет console.log(token.id), однако this.http.post... не вызывается. Даже если я попытаюсь вызвать другую функцию, а не this.sayHello(), она по-прежнему не называется.Угловой 2 - Код не выполняется в обратном вызове token (stripe)

export class SubscriptionComponent{ 

    constructor(public http: Http){} 

    openCheckout() { 

    var handler = (<any>window).StripeCheckout.configure({ 
     key: 'pk_test_mykey', 
     locale: 'auto', 
     token: function(token, args){ 
     console.log(token.id); 

     this.http.post("/stripe/customer", token.id).subscribe(
      res => { 
      console.log(res); 
      }, 
      error => console.log(error) 
     ); 
     }  
    }); 
    handler.open({ 
     name: 'Demo', 
     description: '', 
     amount: 990, 
     currency: 'GBP', 
     email: '[email protected]' 
    }); 
    } 
} 

Любая помощь очень ценится.

+0

Вы проверили, отправлен ли HTTP-запрос через сетевой трекер? Путь console.log (this); после регистрации token.id, чтобы узнать, что это такое –

ответ

0

Для всех, у кого есть эта проблема. Я решил эту проблему путем изменения маркеров обратного вызова для этого

token: token => { 
     console.log(token.id); 
     this.checkoutService.postToken(token); 
     } 

нагнетания checkoutService службы для обработки http.post. Не уверен, почему так работает, а другой нет, но мы идем.

Смежные вопросы