我正在嘗試在聚合物應用程序上使用braintree的託管字段,並遇到代表託管字段的輸入框未呈現的問題。沒有錯誤出現,並且通常包含輸入框的iFrame正在呈現正確。Braintree託管字段不在聚合物上呈現
這裏是我的代碼的一部分,它與braintree提供的基本示例代碼在他們的webisite here上非常相似,只是經過修改以便它能夠在自定義聚合物元素中正常運行。
<script src="https://js.braintreegateway.com/web/3.5.0/js/client.min.js"></script>
<script src="https://js.braintreegateway.com/web/3.5.0/js/hosted-fields.min.js"></script>
<dom-module id="my-view1">
<template>
<style include="shared-styles">
</style>
<form action="/" method="post" id="cardForm" >
<div class="horizontal layout center-justified card-container">
<div class="vertical layout center-justified">
<paper-card id="creditCardDetails" heading="Credit Card Information" class="card-content" elevation="2" style="">
<div class="field-label">
<label class="hosted-field-braintree--label" for="card-number">Card Number</label>
<div id="card-number" class="hosted-field-braintree"></div>
</div>
<div class="field-label">
<label class="hosted-field-braintree--label" for="expiration-date">Expiration Date</label>
<div id="expiration-date" class="hosted-field-braintree"></div>
</div>
<div class="field-label">
<label class="hosted-field-braintree--label" for="cvv">CVV</label>
<div id="cvv" class="hosted-field-braintree"></div>
</div>
<div>
<paper-button id="creditButton" raised class="custom-color" on-click="_onCreditButtonClick">Submit</paper-button>
</div>
</paper-card>
</div>
</div>
</form>
</template>
<script>
Polymer({
is: 'payment'
...
});
var form = document.querySelector("*/deep/#cardForm");
braintree.client.create({
authorization: 'sandbox_g42y39zw_348pk9cgf3bgyw2b'
}, function (clientErr, clientInstance) {
if (clientErr) {
console.error(clientErr);
return;
}
braintree.hostedFields.create({
client: clientInstance,
styles: {
'input': {
'font-size': '14px'
},
'input.invalid': {
'color': 'red'
},
'input.valid': {
'color': 'green'
}
},
fields: {
number: {
selector: '*/deep/#card-number',
placeholder: '4111 1111 1111 1111'
},
cvv: {
selector: '*/deep/#cvv',
placeholder: '123'
},
expirationDate: {
selector: '*/deep/#expiration-date',
placeholder: '10/2019'
}
}
}, function (hostedFieldsErr, hostedFieldsInstance) {
if (hostedFieldsErr) {
console.error(hostedFieldsErr);
return;
}
console.log(hostedFieldsInstance)
});
});
});
});
</script>
任何幫助在正確的方向表示讚賞。
如果你想要一些更多的技術細節和一個可重複的例子,這裏是我打開聚合物關於這個https://github.com/Polymer/polymer/issues/4086 – BladeBarringer