如何在 angular 的不同环境中检查特征是否正确?
How to check feature is true on different environments in angular?
我在 angular 中使用不同的环境,存储在环境文件夹中,例如:
environment.ts
environment.dev.ts
environment.prod.ts
在 environment.ts 文件中,我有:
export const environment = {
production: false,
environment: 'Development',
advanced: {
features: true
}
};
我想在页面中显示 div 元素,仅当环境具有等于 true 的此高级功能时。我正在考虑做 :
import { environment } from './environments/environment';
export class AdvancedComponent implements OnInit {
advancedFeatures:boolean;
constructor() { }
ngOnInit() {
this.advancedFeatures= environment.advanced.features;
if (this.advancedFeatures){
console.log("true");
}
else {
console.log('false');
}
}
}
如果环境是开发环境或生产环境,这足以隐藏或显示 div 元素吗?这是环境高级功能的好方法,还是我应该以某种方式将所有环境导入此 class?
您的 environment.ts
是导入环境文件时使用的默认配置。
Angular 能够在构建期间选择正确的环境文件的原因是利用其配置设置中的 fileReplacements
部分 (see ng docs)。这样可以确保您在代码中使用正确的 environment.advanced.features
值。
类似于fileReplacements
中的prod
版本,您可以定义任何一种设置(即dev or testing
)并参考相应的环境文件。
至于您的方法的可行性——我个人更喜欢使用访问角色来定义用户可以看到哪些页面,但我也没有看到您的方法有任何特别的缺点。
我在 angular 中使用不同的环境,存储在环境文件夹中,例如:
environment.ts
environment.dev.ts
environment.prod.ts
在 environment.ts 文件中,我有:
export const environment = {
production: false,
environment: 'Development',
advanced: {
features: true
}
};
我想在页面中显示 div 元素,仅当环境具有等于 true 的此高级功能时。我正在考虑做 :
import { environment } from './environments/environment';
export class AdvancedComponent implements OnInit {
advancedFeatures:boolean;
constructor() { }
ngOnInit() {
this.advancedFeatures= environment.advanced.features;
if (this.advancedFeatures){
console.log("true");
}
else {
console.log('false');
}
}
}
如果环境是开发环境或生产环境,这足以隐藏或显示 div 元素吗?这是环境高级功能的好方法,还是我应该以某种方式将所有环境导入此 class?
您的 environment.ts
是导入环境文件时使用的默认配置。
Angular 能够在构建期间选择正确的环境文件的原因是利用其配置设置中的 fileReplacements
部分 (see ng docs)。这样可以确保您在代码中使用正确的 environment.advanced.features
值。
类似于fileReplacements
中的prod
版本,您可以定义任何一种设置(即dev or testing
)并参考相应的环境文件。
至于您的方法的可行性——我个人更喜欢使用访问角色来定义用户可以看到哪些页面,但我也没有看到您的方法有任何特别的缺点。