feat(dialog): add elementInjector option to config #70
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR Checklist
Please check if your PR fulfills the following requirements:
Describe the new behavior?
As part of the Forge 3.0 migration, the DialogService was switched over to rely entirely on
EnvironmentInjector
, which limited some ways dependencies could be provided to the dynamically-created component. By allowing an ElementInjector to be provided,createComponent
can leverage the local hierarchy directly without having to explicitly copy over all relevant providers, which may not even be known since they could be specified at a higher level.Additional information
I had initially considered injected the local
Injector
instance, and defaulting to use that if it differed from the localEnvironmentInjector
, implying the service was being provided at the component level. We had done this as a workaround in a few places, but it would interfere with thecloseAllDialogs
functionality, and there are better alternatives, provided this option is added. A component can provide it's injector directly, or a wrapper service could be provided at the component-level and do the same.