Browse Source

docs: add EnvironmentService section to Environment doc

pull/6186/head
mehmet-erim 6 years ago
parent
commit
ebe3ca0206
  1. 78
      docs/en/UI/Angular/Environment.md

78
docs/en/UI/Angular/Environment.md

@ -101,3 +101,81 @@ export interface RemoteEnv {
* `customMergeFn`: You can also provide your own merge function as shown in the example. It will take two parameters, `localEnv: Partial<Config.Environment>` and `remoteEnv` and it needs to return a `Config.Environment` object.
* `method`: HTTP method to be used when retrieving environment config. Default: `GET`
* `headers`: If extra headers are needed for the request, it can be set through this field.
## EnvironmentService
` EnvironmentService` is a singleton service, i.e. provided in root level of your application, and keeps the environment in the internal store.
### Before Use
In order to use the `EnvironmentService` you must inject it in your class as a dependency.
```js
import { EnvironmentService } from '@abp/ng.core';
@Component({
/* class metadata here */
})
class DemoComponent {
constructor(private environment: EnvironmentService) {}
}
```
You do not have to provide the `EnvironmentService` at module or component/directive level, because it is already **provided in root**.
### Get Methods
`EnvironmentService` has numerous get methods which allow you to get a specific value or all environment object.
Get methods with "$" at the end of the method name (e.g. `getEnvironment$`) return an RxJs stream. The streams are triggered when set or patched the state.
#### How to Get Environment Object
You can use the `getEnvironment` or `getEnvironment$` method of `EnvironmentService` to get all of the environment object. It is used as follows:
```js
// this.environment is instance of EnvironmentService
const environment = this.environment.getAll();
// or
this.environment.getAll$().subscribe(environment => {
// use environment here
})
```
#### How to Get API URL
The `getApiUrl` or `getApiUrl$` method is used to get a specific API URL from the environment object. This is how you can use it:
```js
// this.environment is instance of EnvironmentService
const apiUrl = this.environment.getApiUrl();
// environment.apis.default.url
this.environment.getApiUrl$("search").subscribe(searchUrl => {
// environment.apis.search.url
})
```
This method returns the `url` of a specific API based on the key given as its only parameter. If there is no key, `'default'` is used.
#### How to Set the Environment
`EnvironmentService` has a method named `setState` which allow you to set the state value.
```js
// this.environment is instance of EnvironmentService
this.environment.setState(newEnvironmentObject);
```
Note that **you do not have to call this method at application initiation**, because the environment variables are already being stored at start.
#### Environment Properties
Please refer to `Environment` type for all the properties. It can be found in the [config.ts file](https://github.com/abpframework/abp/blob/dev/npm/ng-packs/packages/core/src/lib/models/config.ts#L13).
Loading…
Cancel
Save