Comments (1)
For an example of what I mean, you can check the createInjectionToken function in the ngextension library.
https://ngxtension.netlify.app/utilities/injectors/create-injection-token/
The idea with [provide, inject]
tuple is from initial SignalStore proposal.
The injection token's limitation is that it cannot be provided via the providers
array without useFactory
. That's the reason why the provide..
function is necessary for tokens. On the other hand, this is not needed for services (classes).
By the way, I opened an issue for this some time ago: angular/angular#49807
It would be convenient if the signalStore function, instead of returning the class to use for providing and injecting, returned two functions that act as injection function and provider function using the new standalone syntax.
Can you provide more details on why the [provide, inject]
tuple instead of a single service seems more convenient to you?
As I mentioned, we started with this approach but changed it for two main reasons:
- Simplicity: There is no need for a different signature when SignalStore is provided at the root level. With
[provide, inject]
approach, theprovide
function is not needed for root-level stores. - Testing: Service can be easily mocked
from platform.
Related Issues (20)
- Simplify patchState() method for enhanced developer experience HOT 1
- provideState cannot be used in standalone components HOT 3
- @ngrx/signals: updateEntity method don't update key in entityMap HOT 9
- ngRx 17 causing breaking unit tests - multiple issues HOT 2
- minor perf improvement, signal store excludeKeys
- dynamically parametrized selectors (dynamic range of computeds) HOT 3
- docs: Reusing `extraSelectors` in the `createFeature` HOT 1
- bake in patchState immutability for simplicity HOT 8
- potential degradation of withMethods generic types inference HOT 5
- Inconsistent providing of services leads to problems with module federation HOT 1
- @ngrx/signals: `mockSignalStore` feature HOT 14
- @ngrx/component-store: Add migration schematic for `tapResponse` operator HOT 1
- @ngrx/effects: Add migration schematic for `concatLatestFrom` operator HOT 2
- Use of rxMethod in service or component without signalStore HOT 1
- untracked for all methods? HOT 4
- @ngrx/signals: ability to save entity class instance on updateEntity() HOT 1
- Expose more models to the public API: SignalStoreFeatureResult and InputSignalStore<Input>
- Using a custom generic function for defining props in createActionGroup results in weird TypeScript errors HOT 4
- Chaining custom signal store features with input declared as functions fails HOT 2
- @ngrx/effects/src/effect_creator.d.ts:12:43 - error TS2313: Type parameter 'OT' has a circular constraint. HOT 17
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from platform.