Comments (4)
Started on this here: https://stackblitz.com/edit/ngxs-router?file=app%2Frouter.store.ts
from store.
@amcdnl is this how you intend us to implement RouterState
?
I don't understand the role of constructor
in xyzState
. does it have any special way to access state?
import {Router, NavigationEnd, ActivatedRoute} from '@angular/router';
import {filter, map} from 'rxjs/operators';
import {State, Action, Store, StateContext, NgxsModule} from 'ngxs';
import {Injectable, NgModule} from '@angular/core';
import {RouterModule} from '@angular/router';
export class UpdateRouteModel {
constructor(public readonly payload: RouteModel) {
}
}
export interface RouteModel {
data: any;
path: string;
}
@State<RouteModel>({
defaults: {
data: {},
path: ""
}
})
export class RouterState {
constructor(private store: Store, private _router: Router, private activatedRoute: ActivatedRoute) {
this._router.events
.pipe(
filter(event => event instanceof NavigationEnd),
map(() => this.activatedRoute),
map(route => {
while (route.firstChild) route = route.firstChild;
return route;
})
)
.subscribe((event: any) => {
const {data, path} = event.routeConfig;
this.store.dispatch(new UpdateRouteModel({data, path}))
});
}
@Action(UpdateRouteModel)
update({getState, setState}: StateContext<RouteModel>, {payload} : UpdateRouteModel) {
setState({
...payload
})
}
}
from store.
@amcdnl I have MenuState store that needs to fetch its default state from backend. Stateβs constructor is the ideal palace to implement this logic ? If so , is there a shortcut to set default state within the constructor ? Dispatching initial setState from constructor doesnβt make sense to me.
from store.
Here is a rough draft of this - https://gist.github.com/amcdnl/1c935e9773242bd61a5e86fce9baf3ea
from store.
Related Issues (20)
- π[BUG]: ngxs-cli - generated code - contains nbsp and the spec uses deprecated code HOT 1
- π[BUG]: Using Angular 16 webapp is throwing "inject() must be called from an injection context such as a constructor, a factory function, a field initializer, or a function used with `runInInjectionContext` HOT 3
- best solution in impliment microfrontEnd HOT 1
- π[FEATURE]: Support latest angular and typescript versions (decorators arent working) HOT 5
- π[BUG]: Uncaught TypeError: Cannot read properties of undefined (reading 'SystemState') HOT 7
- π[BUG]: @Select decorator doesn't trigger value HOT 1
- π[BUG]: it seems that Ngxs is not compatible with Jest ESM HOT 4
- π[BUG]: patch operator does not handle null existing values
- π[BUG]: export 'StateContext' (imported as 'StateContext') was not found in '@ngxs/store' HOT 2
- π[FEATURE]: How to Load New State at Runtime? HOT 1
- π[BUG]: Could not use NgxsFormPlugin in subModule on Federation Architecture HOT 1
- π[FEATURE]: Support Angular 17 HOT 9
- π[BUG]: NgxsFormPlugin not work in Angular17 HOT 1
- π[BUG]: ngxs-store.js: Invalid count value HOT 16
- π[BUG]: ResetForm action side effect completes after the action
- π[FEATURE]: Allow Actions with non-static type fields HOT 2
- NoInfer TS 5.4 HOT 2
- π[BUG]: Cannot read properties of undefined (reading 'NGXS_META') HOT 2
- π[DOCS]: Setup on application root level HOT 2
- Typing inline generic operators seems much more annoying with 3.8 (coming from 3.6) HOT 3
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 store.