typescript - Angular2 应用范围变量

标签 typescript angular

有没有办法设置某些应用程序范围的变量/常量,供所有组件使用?如果是,在哪里声明它以及如何在组件中引用它?

我能想到的是

export var SharedValues = {
    Title:   "aaaaa",
    Something: "bbbbb"
}

然后在组件中导入并使用它。

我可以在 main.ts 中声明一些东西然后直接引用它或类似的东西吗?

最佳答案

您可以将其打包到一个类中并将其用作服务。例如,

@Injectable()
export class SharedValues {
    public Title = 'aaaaa';
    public Something = 'bbbbb';
}

然后,如果您在模块中使用 RC5 包含...

import { SharedValues } from 'some/path/shared-values.service';

@NgModule({
    // declarations, imports, bootstrap...

    providers: [
        // your other providers
        SharedValues,
    ]
}) export class AppModule {}

如果您使用的是 RC4 或以前的版本,请添加到您的 Bootstrap 中...

import { SharedValues } from 'some/path/shared-values.service';

bootstrap(AppComponent, [
    // ...
    SharedValues,
]);

无论你想在哪里使用它...

import { SharedValues } from 'some/path/shared-values.service';

// or wherever you want to use the variables
@Component({
    // ...
}) export class SomeComponent {
    constructor(private shared: SharedValues) {
        console.log(this.shared.Title, this.shared.Something);
    }
}

关于typescript - Angular2 应用范围变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38641823/

相关文章:

typescript - “React”已声明,但其值从未被读取

javascript - 使用 Prometheus 监控 Angular 前端

reactjs - 相当于reactjs中的ng-init

javascript - Angular 5 应用程序中的多个路由器 socket (未命名)

angular - 如何获取 DOM 元素高度?

angular - 运行 jasmine 测试用例后出现错误 :- TypeError: this. snackBarRef.dismiss 不是一个函数

angular - 仅当响应成功时如何使表单路由(Angular 4)

node.js - 尝试与 Mongoose 连接时,为什么会得到 "mongoose.connect is not a function"?

Angular4 AutoComplete 运行速度非常慢,如何加快速度

javascript - 基于 if 语句动态改变图像