Я хочу сделать сервисный звонок внутри моего auth.state.ts
.
Вот мой файл состояния:
import { EmitterAction, Receiver } from '@ngxs-labs/emitter';
import { Selector, State, StateContext } from '@ngxs/store';
import { TokenResponse, User } from '../models';
import { UserDetailsService } from '../profile/user-profile/user-details.service';
// actions
export class GetUser {
constructor(private userDetailsService: UserDetailsService) {}
static readonly type = '[Auth] GetUser';
}
interface AuthStateModel {
user?: User;
tokenResponse?: TokenResponse;
}
@State<AuthStateModel>({
name: 'auth'
})
export class AuthState {
constructor(private userDetailsService: UserDetailsService) {}
@Selector()
static user(state: AuthStateModel) {
return state.user;
}
@Action(GetUser)
getUser(ctx: StateContext<AuthStateModel>, action: GetUser, userDetailsService: UserDetailsService) {
console.log('get user');
// console.log(userDetailsService.userDetailsUrl);
return userDetailsService
.getUserInfo()
.pipe(take(1))
.subscribe(
(res: any) => {
console.log(res.message);
ctx.patchState({ user: res.message });
},
(err: HttpErrorResponse) => {
console.log(err);
}
);
}
}
Но здесь он не получит мои userDetailsService
, а также его методы и свойства.
*** Примечание *
Этот auth.state.ts
файл импортирован в мой app.module.ts
, а также userDetailsService.ts
также включен в раздел provide
app.module.ts
.
Пожалуйста, помогите мне с этим, спасибо заранее