4

Is there a way to set certain application scope variable/constant that can be used by all components? If yes, where to declare it and how to reference it in components?

What I can think of is to

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

then import it in components and use it.

Can I declare something in main.ts and then directly reference it or something similar?

1 Answer 1

3

You could package that into a class and use it as a service. For example,

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

Then, if you are using RC5 include in your module...

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

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

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

If you are using RC4 or previous add to your bootstrap...

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

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

And wherever you want to use it...

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);
    }
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.