我是 angular 的新手,我正在尝试在我的 angular 中实现解析,其中我的需要是组件应该仅在数据可用时加载。但问题是解析代码在我可以在组件中捕获它之前执行,并且组件中返回的数据给出了未定义的值。
解析代码:
sugar@cube:~/Downloads$ java -jar test.jar
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library:
/usr/lib/jvm/java-16-openjdk-amd64/lib/libawt_xawt.so
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2387)
at java.base/java.lang.Runtime.load0(Runtime.java:746)
at java.base/java.lang.System.load(System.java:1857)
at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169)
at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:310)
at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:280)
at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2392)
at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:808)
at java.base/java.lang.System.loadLibrary(System.java:1893)
at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:1389)
at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:1387)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1386)
at java.desktop/java.awt.Toolkit.<clinit>(Toolkit.java:1419)
at java.desktop/java.awt.Component.<clinit>(Component.java:622)
组件代码:
export class RouteResolver implements Resolve<any> {
ongoingClasses: any;
sortedDataClasses: any;
constructor(
public commonService: CommonService,
private router: Router,
) { }
resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<any> {
return this.getOngoingClasses();
}
getOngoingClasses(): any {
debugger;
this.commonService.API_URL = `${environment.apiUrl}/admin/dashboardOngoingClasses?limit=10&offset=0&searchInput=`;
this.commonService.getList().subscribe(
response => {
this.ongoingClasses = response?.data;
}
);
}
}
路线代码:
ngOnInit(): void {
debugger
this.activateRoute.data.subscribe((results: { results: any }) => {
console.log(results.results);
});
}
请帮我解决这个问题。
答案 0 :(得分:2)
您没有从 getOngoingClasses
返回任何内容,这就是您的解析器返回 undefined 的原因。与其订阅某些东西,不如返回一个可观察对象:
getOngoingClasses(): any {
debugger;
this.commonService.API_URL = `${environment.apiUrl}/admin/dashboardOngoingClasses?limit=10&offset=0&searchInput=`;
return this.commonService.getList().pipe(map(response => response?.data));
}
答案 1 :(得分:1)
在地图块的末尾添加 return 。像这样:
return this.commonService.getList().pipe(map(response => return response?.data));