我有一个全局常量,例如根目录,我希望每个组件都可以访问它。在另一个 stackoverflow 问题中,答案是创建一个常量类并将其导入到每个组件中。
有没有一种方法可以引导常量类,以便应用程序中的每个组件都可以访问它而无需任何额外的导入?
到目前为止我已经有了这个,但它不起作用,我如何引导常量类,然后在我的组件中访问?
constants.ts
export class Constants{
root_dir: string;
constructor(){
this.root_dir = 'http://google.com/'
}
}
main.ts
import {bootstrap} from 'angular2/platform/browser'
import {Constants} from './constants'
bootstrap([
provide(Constants, {useClass: Constants})
]);
random.component.ts
import {Component, bind} from 'angular2/core';
import {Injector} from 'angular2/core';
@Component({
selector: 'my-app',
template: `{{test}}`
})
export class RandomComponent{
test: string;
constructor(){
this.test = injector.get(Constants.root_dir);
}
}
回答您的问题:
export class App {
constructor(constants: Constants) {
this.url = constants.root_dir;
}
}
您还可以将常量类装饰为@Injectable
and @Inject
将其放入组件的构造函数中。
这是一个正在工作的笨蛋。 https://plnkr.co/edit/1OHKlQVnYz6MOHoJqrvm?p=preview
在应用程序级别引导共享常量是有益的,以便仅创建该类的一个实例并在所有组件之间共享。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)