Introduction
- Angular dependency injection standalone version
- The usage method is completely consistent with Angular's dependency injection
- No transformer required
- 0 dependencies
- Remove Decorator
>
@Injectable()
=>static injectOptions={}
>@Inject() xx
=>xx=inject()
>@Optional()
=>xx=inject(token,{optional:true})
-
JS
/TS
Support
Source
- Angular 17.3.6
Usage
npm i static-injector
- Create a first level dependency injector with
Injector.create
import { Injector, inject } from 'static-injector';
class Main {
child = inject(Child);
}
class Child {
output() {
return 'hello world';
}
}
let injector = Injector.create({ providers: [Main, Child] });
const instance = injector.get(Main);
console.log(instance.child.output());
Different from injection-js
-
injection-js
belongs to dynamic dependency injection and is a version used before Angular5. Currently no longer updated The two are basically interchangeable (the details need to be adjusted)
Support the use of
inject
during construction
No Decorator
- The original use of
@Injectable()
to pass parameters has been changed tostatic injectOptions={}
. If there are no parameters, there is no need to set them - Originally,
@Optional
,@SkipSelf
,@Self
, please use the second pass parameter ofinject
instead
Test
- Partially conducted unit testing to ensure that most functions are functioning properly
- Because most of the code itself is extracted from Angular, stability is definitely guaranteed
Sync
- Currently, the synchronization logic has been refactored and modified using
@code-recycle/cli
to ensure consistency with the official version ofangular
Examples
Contact me
- If you have any technical issues, please contact me for assistance
wszgrcy@gmail.com
Top comments (0)