javascript - 在组件内本地公开函数变量

标签 javascript twitter-flight

我有一个 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;

最佳答案

只需将 buttonTextparagraphText 的声明上移一级到 parmentForm。它们将在 bindTranslationshandlePaymentState 的闭包中捕获:

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/

相关文章:

javascript - 通过 JavaScript 包含 HTML 文件

javascript - 处理 Twitter Flight 组件的多个实例的事件

javascript - 将 Bacon.js 与 FlightJS 结合使用

javascript - Flight.js 组件实例应该使用共享变量吗?

javascript - 如何将框阴影值从 RGB 值转换为 HEX 值

javascript - 如何在没有帮助的情况下更新 Meteor 中的 div?

javascript - 如何替换文本以创建 div 类

javascript - 在 config.js 文件中需要 baseurl