如何在Ember中导入全局变量?
How to import global variable in Ember?
我是 Ember 的新手,我正在尝试使用配置/环境文件中的全局变量,然后将其导入到多个适配器和模型中。我需要这个来更改一个地方的变量,而不是编辑每个文件。
在这种情况下,全局变量是一个带有 api 服务器地址的字符串。该变量名为 apiRoot。我尝试使用以下配置,但它不起作用。请告诉我需要做什么,如果这在 Ember 中可行,或者也许还有其他方法?感谢您的帮助!
环境文件:
'use strict';
module.exports = function(environment) {
let ENV = {
modulePrefix: 'front',
environment,
rootURL: '/',
locationType: 'auto',
EmberENV: {
FEATURES: {
},
EXTEND_PROTOTYPES: {
Date: false
}
},
APP: {
}
};
if (environment === 'development') {
}
if (environment === 'test') {
ENV.locationType = 'none';
ENV.APP.LOG_ACTIVE_GENERATION = false;
ENV.APP.LOG_VIEW_LOOKUPS = false;
ENV.APP.rootElement = '#ember-testing';
ENV.APP.autoboot = false;
}
if (environment === 'production') {
}
ENV.apiRoot = 'http://localhost:5555/api';
return ENV;
};
适配器:
import RESTAdapter from '@ember-data/adapter/rest';
import ENV from '../../config/environment';
export default RESTAdapter.extend({
host: ENV.apiRoot,
pathForType() {
return "posts";
}
});
问题是您的相对路径可能指的是您的 app
文件夹 外部 的 /config/environment
文件。但它应该引用 app 文件夹中的 config/environment
,一个 在你的文件系统中不存在的文件 !
原因是您没有从文件系统导入 config/environment
文件。因为该文件在浏览器中不存在。相反,ember-cli
将在 构建时间 期间 执行 该文件,并仅将生成的 JSON 发送到您的浏览器并使其可用在 config/environment
。但是对于浏览器中的所有路径,app 文件夹是项目的 root。您不能导入 app
文件夹之外的内容。
所以你ember-cli
制作的config/environment
JSON基本上会被移动到app
文件夹中。
我是 Ember 的新手,我正在尝试使用配置/环境文件中的全局变量,然后将其导入到多个适配器和模型中。我需要这个来更改一个地方的变量,而不是编辑每个文件。 在这种情况下,全局变量是一个带有 api 服务器地址的字符串。该变量名为 apiRoot。我尝试使用以下配置,但它不起作用。请告诉我需要做什么,如果这在 Ember 中可行,或者也许还有其他方法?感谢您的帮助!
环境文件:
'use strict';
module.exports = function(environment) {
let ENV = {
modulePrefix: 'front',
environment,
rootURL: '/',
locationType: 'auto',
EmberENV: {
FEATURES: {
},
EXTEND_PROTOTYPES: {
Date: false
}
},
APP: {
}
};
if (environment === 'development') {
}
if (environment === 'test') {
ENV.locationType = 'none';
ENV.APP.LOG_ACTIVE_GENERATION = false;
ENV.APP.LOG_VIEW_LOOKUPS = false;
ENV.APP.rootElement = '#ember-testing';
ENV.APP.autoboot = false;
}
if (environment === 'production') {
}
ENV.apiRoot = 'http://localhost:5555/api';
return ENV;
};
适配器:
import RESTAdapter from '@ember-data/adapter/rest';
import ENV from '../../config/environment';
export default RESTAdapter.extend({
host: ENV.apiRoot,
pathForType() {
return "posts";
}
});
问题是您的相对路径可能指的是您的 app
文件夹 外部 的 /config/environment
文件。但它应该引用 app 文件夹中的 config/environment
,一个 在你的文件系统中不存在的文件 !
原因是您没有从文件系统导入 config/environment
文件。因为该文件在浏览器中不存在。相反,ember-cli
将在 构建时间 期间 执行 该文件,并仅将生成的 JSON 发送到您的浏览器并使其可用在 config/environment
。但是对于浏览器中的所有路径,app 文件夹是项目的 root。您不能导入 app
文件夹之外的内容。
所以你ember-cli
制作的config/environment
JSON基本上会被移动到app
文件夹中。