【问题标题】:put ActivatedRoute where? declarations or imports, providers,...?把ActivatedRoute放在哪里?声明或进口,供应商,...?
【发布时间】:2019-06-04 22:16:48
【问题描述】:

未捕获的错误:模块“AppModule”声明的意外值“ActivatedRoute”。请添加@Pipe/@Directive/@Component 注解。 这是我收到的错误

【问题讨论】:

  • 嗨,欢迎您,请正确发布您的问题,并提供确切的详细信息,如果您发布屏幕截图,请确保它们已附上 - 更多信息请点击此处stackoverflow.com/help/how-to-ask
  • @TrầnDũng 我想你将组件添加到模块而不是声明或 AppModule 中的错误位置
  • ActivatedRouteInjectable 服务,您应该将其添加到组件构造函数中,而不是添加到 Module 装饰器中

标签: angular


【解决方案1】:

如果你没有在装饰器函数之前输入@,你会得到这个错误信息

确保你在装饰器之前添加了字符@

@Component({ selector: '...', }) -> Correct

Component({ selector: '...', }) -> ERROR MESAGE: 'add a @Pipe/@Directive/@component'

【讨论】:

    【解决方案2】:

    无需在任何模块中添加ActivatedRoute

    相反,ActivatedRoute 只是路由器配置对象的(可选)属性,它接受间接返回布尔值的服务,以决定是否显示此路由。比如——

    import { Routes, RouterModule } from '@angular/router';
    
    const ROUTER: Routes = [
      {
        path: '',
        component: MyComponent,
        canActivate: [ AuthGuardService ]
      }
    ];
    
    export const ModuleRouter = RouterModule.forChild(ROUTER);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-30
      • 1970-01-01
      • 2012-06-06
      • 2016-08-25
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多