의견에서 언급했듯이 이것은 추악한 해결책이었습니다. 하지만 onPaymentMethodReceived를 사용하여 토큰을 얻을 수 있었고 그 값을 숨겨진 입력에 추가하고 양식을 서버에 보냈습니다. 내 양식에는 특별한 요구 사항이 있으므로 ngNoForm 특성을 사용해야했습니다.
...
<input id="nonce" type="text" hidden [(ngModel)]="nonce" name="nonce">
...
</form>
ngOnInit() {
var url = window.location.href;
var id = this.getEmployeeUserId(url);
this.employeeId = id;
this.ghttp.getEmployeeByuserId(id)
.then((data)=>{
this.day30Price = data._addAmount;
this.day60Price = data._add2month;
this.day90Price = data._add3month;
});
this.splashhttp.getToken()
.then((res)=>{
var id = res._body;
braintree.setup(id, 'dropin', {
container: 'dropin-container',
onPaymentMethodReceived: function (obj) {
document.getElementById("nonce").value = obj.nonce;
var myForm = document.getElementById("myForm");
myForm.submit();
}
});
});
}
출처
2017-01-23 10:42:55
Dan
전체 공개 : 나는 브레인 트리에서 작동합니다. Braintree의 Javascript SDK와 Angular 2 사이에는 근본적인 비 호환성이 없습니다. 그러나 Angular 2를 사용하는 유지 보수 된 예제가 없으므로 여기서 정보는 해결책을 제공하기에 충분하지 않습니다. 더 많은 지원을 받으려면 코드와 웹 사이트에 대한 자세한 내용과 함께 [Braintree Support] (https://support.braintreepayments.com/)에 문의하십시오. – jake
같은 것을 찾으십시오. 브레인 트리 사람들이 대답 했습니까? –
응답을 받았습니다. 그들은 angular2가 공식적으로 지원되지 않지만 braintree API에는 각도 2와 호환되지 않는 근본적인 것이 아무것도 없다고 말했다. 나는 규칙적인 javascript/angular2의 추악한 혼합과 함께 작동하도록했다. – Dan