在不同的 Require.js 模块中存储和加载变量

Storing and loading variables in different Require.js modules

本文关键字:存储 加载 变量 模块 js Require      更新时间:2023-09-26

我在骨干上工作.js并且需要.js应用程序。我有一个应用程序常量.js文件。它存储了一些静态变量,但也存储国家ISO代码:

define(function (require) {
    'use strict';

    var AppConstants = {
        SESSION_TIMEOUT_DURATION: 300,
        COUNTRY_ISO_CODES: [],
        getCountryIsoCodes: function () {
            return this.COUNTRY_ISO_CODES;
        },
        setCountryIsoCodes: function (countries) {
            this.COUNTRY_ISO_CODES = countries;
        }
    };
    return AppConstants;
});

国家/地区 iso 代码取决于浏览器的语言,因此会在应用启动后加载。因此,在获得浏览器语言后,我然后加载国家/地区代码:

appConstants.setCountryIsoCodes(lookUpDataCountries);

如果我在setCountryIsoCodes((之后直接调用getCountryIsoCodes((,我看到国家代码是在appConstants文件中设置的:

console.log('appConstants.getCountryIsoCodes() are ');
console.log(appConstants.getCountryIsoCodes());

输出为:

appConstants.getCountryIsoCodes() are
["CA", "MX", "GT",
etc etc

但是,如果我在另一个模块(例如某些模型(中加载应用程序常量并再次打印出国家/地区代码,则得到一个空数组。如何将国家/地区代码存储在 app-constant.js 文件中并将它们加载到不同的模块中?

不确定这是否会解决它,但是怎么样:

define(function (require) {
    'use strict';
    var COUNTRY_ISO_CODES: [];
    var AppConstants = {
        SESSION_TIMEOUT_DURATION: 300,
        getCountryIsoCodes: function () {
            return COUNTRY_ISO_CODES;
        },
        setCountryIsoCodes: function (countries) {
            COUNTRY_ISO_CODES = countries;
        }
    };
    return AppConstants;
});