首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Resolver发出错误错误:"[ Object ]“

Resolver发出错误错误:"[ Object ]“
EN

Stack Overflow用户
提问于 2018-06-26 11:02:16
回答 8查看 38.6K关注 0票数 38

在我的路由上实现一个解析器是有问题的,因为在我的路由模块中包含InitialDataResolver之前它没有问题。

pages-routing.module.ts

代码语言:javascript
复制
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { FrontComponent } from '../layouts/front/front.component';
import { HomeComponent } from './home/home.component';
import { DocsComponent } from './docs/docs.component';
import { InitialDataResolver } from './../shared/resolvers/initial-data.resolver';

const routes: Routes = [
  {
    path: '',
    component: FrontComponent,
    children: [
      { path: '', component: HomeComponent },
      { path: 'docs', component: DocsComponent }
    ],
    resolve: {
      init: InitialDataResolver
    },
  }
];

@NgModule({
  imports: [ RouterModule.forChild(routes) ],
  exports: [ RouterModule ],
  providers: [ InitialDataResolver ]
})
export class PagesRoutingModule { }

initial-data.resolver.ts

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';
import { Observer } from 'rxjs/Observer';
import { AppInitService } from '../services/app-init.service';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class InitialDataResolver implements Resolve<any> {

  constructor(private appInitService: AppInitService) {}

  resolve(route: ActivatedRouteSnapshot,
          state: RouterStateSnapshot): Observable<any> {
    return Observable.create((observer: Observer<any>) => {

      this.appInitService.init()
          .subscribe(data => {
            this.appInitService.preload();
            observer.next(data);
            observer.complete();
          });

    });
  }

}

我遇到的错误是ERROR Error: "[object Object]"。见下面的快照:

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2018-06-27 05:43:07

在使用Mozilla Firefox时发生了这种缺乏详细错误的情况。因此,您需要做的是切换到Google Chrome,以查看特定的错误。

更新:

还可以将错误存储为全局变量

然后,您可以键入temp0.message来查看实际的错误消息。

票数 118
EN

Stack Overflow用户

发布于 2019-06-04 08:33:20

在控制台中,您可以存储以下错误

错误:“对象”

作为全局变量

,然后从object temp0.message获取错误消息。

票数 22
EN

Stack Overflow用户

发布于 2019-04-22 11:13:01

我已经为在firefox中工作的详细错误找到了解决方案。它基于定义自定义错误处理程序和亲自检查错误属性。这些步骤之后,错误被正确地显示出来,不需要切换到铬。

  1. 定义自定义错误处理程序类:
代码语言:javascript
复制
import { ErrorHandler } from '@angular/core'

export class MyErrorHandler implements ErrorHandler {

    handleError(error: any) {
        // console.error(Object.getOwnPropertyNames(error))
        // Object.getOwnPropertyNames(error).forEach(p => console.error(error[p]))
        console.error(error.fileName, error.lineNumber, ':', error.columnNumber, '\n', error.message, error.rejection)
    }

}
  1. 然后将其注册为主组件中的提供程序。
代码语言:javascript
复制
@NgModule({
    declarations: []
    imports: []
    providers: [{provide: ErrorHandler, useClass: MyErrorHandler}], // <-- register MyErrorHandler
    bootstrap: [RootComponent]
})
export class AppModule { }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51041301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档