我有一个 FlightJS 组件(未启动),需要一种方法在组件初始化后从 bindTranslations
公开翻译后的文本,以便本地函数可以访问翻译后的值。这是我希望它如何工作的伪代码,但我的 JS 知识让我失败:(
function paymentForm() {
this.bindTranslations = function() {
var buttonText = I18n.t('js.process_payment_button');
var paragraphText = I18n.t('js.process_payment_paragraph');
return {
button: buttonText,
paragraph: paragraphText
}
};
this.handlePaymentState = function() {
this.select('submitButtons').val(buttonText);
this.select('paymentParagraph').val(paragraphText);
}
this.after('initialize', function() {
this.bindTranslations();
}
}
export default paymentForm;
最佳答案
只需将 buttonText
和 paragraphText
的声明上移一级到 parmentForm
。它们将在 bindTranslations
和 handlePaymentState
的闭包中捕获:
function paymentForm() {
var buttonText;
var paragraphText;
this.bindTranslations = function() {
buttonText = I18n.t('js.process_payment_button');
paragraphText = I18n.t('js.process_payment_paragraph');
// ...
关于javascript - 在组件内本地公开函数变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48265294/