我在angular 6中是新手,正在使用angular 6创建项目。在共享数据时遇到了问题。
这是我的代码:
1)组件侧边栏:
selectedCategory(type:any) {
this.loginService.categoryType = type; // need to pass this data
}
2)List Comp:
export class ListPostsComponent implements OnInit {
ngOnInit() {
// here I need the data
}
}
3)服务:
export class LoginService {
categoryType:any;
}
答案 0 :(得分:1)
在您的服务中,将const matrix = document.querySelector('.matrix');
katex.render("\\begin{Bmatrix}\n\n a & b \\\\\n\n c & d\n\n\\end{Bmatrix}", matrix, {
throwOnError: false
});
设为categoryType
,并在需要将数据传递到另一个组件时调用Subject
:
next()
现在,在组件侧边栏中,您需要注入服务@Injectable({
providedIn: 'root',
})
export class LoginService {
private categoryType: Subject<any> = new Subject<any>();
public categoryType$ = this.categoryType.asObservable();
public sendData(data: any){
this.categoryType.next(data);
}
}
并调用LoginService
方法:
sendData
由于constructor(private loginService: LoginService ){ }
selectedCategory(type:any) {
this.loginService.sendData(type);
}
既是观察者又是可观察者,因此您可以订阅主题并侦听希望接收数据的组件中的更改:
Subject
以下是Stackblitz中上述解决方案的有效示例:https://stackblitz.com/edit/angular-2sld4k?file=src%2Fapp%2Floginservice.service.ts