Я работаю над угловым приложением, которое имеет следующую структуру модулей.
app.module.ts
, и в этом модуле у меня есть еще два модуля с именами home.module.ts
и admin.module.ts
.
Я использую NgRx в своем приложении для управления состоянием. То, что я пытаюсь сделать, - это когда определенное событие происходит в компоненте в home.module.ts
, тогда отправленное здесь действие должно быть отражено в app.module.ts
или даже в модуле-родстве admin.module.ts
. Диспетчеризация действий прекрасно работает между двумя компонентами одного и того же модуля (независимо от отношения родитель-потомок или потомок-родитель), но не при изменении модулей.
StoreModule
уже включен в app.module.ts
, я импортировал его в home.module.ts
, но все еще безуспешно.
Мне нужна помощь по этому вопросу, спасибо.
Также обратите внимание, что магазин отлично работает среди компонентов одного и того же модуля. то есть действия отправляются, и даже другой компонент слушает их в это время.
Компонент 1 для действия отправки
import { Component, OnInit } from '@angular/core';
import { Store } from '@ngrx/store'
import { Test } from '../../../ngrx/models/test.model'
import * as TestActions from '../../../ngrx/actions/test.actions'
@Component({
selector: 'app-add-test',
templateUrl: './add-test.component.html',
styleUrls: ['./add-test.component.css']
})
export class AddTestComponent implements OnInit {
constructor(
public store: Store<Test[]>
) { }
ngOnInit() {
}
addDataToStore(){
console.log("Action Dispatched... [Add Test]")
const data = {
name : "Adnan Khan",
email : "adnan@khan.com"
}
this.store.dispatch(new TestActions.TestAdd(data))
}
}
Компонент 2 для отображения данных
import { Component, OnInit } from '@angular/core';
import { Observable } from 'rxjs'
import { Store } from '@ngrx/store'
import { Test } from '../../../ngrx/models/test.model'
@Component({
selector: 'app-show-test',
templateUrl: './show-test.component.html',
styleUrls: ['./show-test.component.css']
})
export class ShowTestComponent implements OnInit {
constructor(
public store: Store<Test>
) { }
storeData: Observable<Test[]>
ngOnInit() {
this.storeData = this.store.select('test')
}
}