Ember.js是否有环境概念,例如Rails有(开发/测试/生产)?例如,我可能希望在开发中将一堆数据记录到控制台中,但不是在生产中。有什么办法吗?
为了避免XY问题,我将解释我的实际用例(与提到的用例相反):我想在应用程序投入生产时显示某个警告,但不在开发中显示它。如果应用程序未通过HTTPS运行,则应显示警告。但是,因为开发通常发生在禁用HTTPS的本地计算机上,所以开发人员一直向他/她展示它会非常烦人。所以我想在开发中禁用警告。
答案 0 :(得分:3)
Ember上没有环境概念,但您可以将该职责委托给您的服务器环境(express,rails,无论您使用的是什么),您可以设置JS变量,cookie,localStorage值,无论您想要什么。
编辑:此外,由于您可能正在测试本地环境,您可以检查URL中的域,例如localhost,0.0.0.0等,
为此您可以使用window.location.host
答案 1 :(得分:0)
只需在页面中传递属性
即可var isProduction = false; // dynamically populate
App = Ember.Application.create({
LOG_TRANSITIONS: !isProduction,
LOG_TRANSITIONS_INTERNAL: !isProduction,
log: function(){
if(isProduction) return;
console.log.apply(console, arguments);
}
});
并在任何地方使用App.log
。
答案 2 :(得分:0)
或者您可以导入环境,例如从' ../ config / environment'中导入ENV; 然后检查一下你所处的环境并做出相应的决定。