我是Ember的新手,正在尝试使用config /环境文件中的全局变量,然后将其导入到多个适配器和模型中。我需要在一个地方更改变量,而不是编辑每个文件。在这种情况下,全局变量是带有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";
}
});
问题是您的相对路径可能指向/config/environment
文件夹的app
文件outside。但是它应该引用app文件夹中的config/environment
,该文件在您的文件系统中不存在!
原因是您没有从文件系统导入config/environment
文件。因为该文件在浏览器中不存在。相反,ember-cli
将在build time期间execute该文件,并仅将生成的JSON发送到您的浏览器,使其在config/environment
可用。但是对于浏览器中的所有路径,app文件夹是项目的root。您无法导入app
文件夹之外的内容。
因此config/environment
产生的ember-cli
JSON基本上将被移到app
文件夹中。