无法解析UIRouter的所有参数:(?,?)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法解析UIRouter的所有参数:(?,?)相关的知识,希望对你有一定的参考价值。

我正在使用angular2和uirouter进行路由。我已经在应用程序中成功实现了uirouter模块。但是当我尝试测试我的应用程序时出现问题。我在使用业力,Jasmin并使用npm test启动它。但遇到了ERROR:Can't resolve all parameters for UIRouter: (?, ?).

我在*.spec.ts文件中导入了“UIRouter”,并将其添加到providers数组中,如下所示。

import { UIRouterModule } from '@uirouter/angular';
import { UIRouter } from "@uirouter/core";
describe('Footer Menus', () => {
  let footerMenuBlServiceRef:FooterMenuBLService;
  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [],
      declarations: [],
      providers: [UIRouter],
    })
      .compileComponents();
  }));

但没有运气。任何帮助将不胜感激。

答案

解决了!!!只需从UIRouter数组中删除providers,但保留import语句。是的,它的工作。

另一答案

在上个星期五,我终于找到了一种方法让它发挥作用。它不是一种干净的方式,但它至少可以工作。

我使用我的功能模块的状态重新导入UIRouter.forRoot,并为UIRouter的Root Provider提供APP_BASE_HREF值。

这是我的BeforeEach:

beforeEach(async(() => {
    TestBed.configureTestingModule({
        declarations: [
            HomeComponent,
            HomeCardComponent
        ],
        imports: [
            AppMaterialModule,
            // Always import root UIRouter module when testing a component including routing
            UIRouterModule.forRoot({states: HOME_STATES})
        ],
        providers: [
            // Also, include the base href value when testing a component including routing
            {provide: APP_BASE_HREF, useValue: '/'}
        ],
    }).compileComponents();
}));

如果你知道更好的方式,我很乐意知道! :)

另一答案

UI-Router source可以提供一些帮助。这对我有用:

import { UIRouterModule } from '@uirouter/angular';
...
TestBed.configureTestingModule({
    ...
    imports: [UIRouterModule.forRoot({ useHash: true })],
})

以上是关于无法解析UIRouter的所有参数:(?,?)的主要内容,如果未能解决你的问题,请参考以下文章

无法解析 Class: (?) 的所有参数,尽管已提供

无法解析ObservableDataSource的所有参数:([object Object] ,?)

无法解析AuthGuard的所有参数:在我的AuthGuard服务中

“无法解析服务的所有参数:(?)”当我尝试在 Angular 10 中使用库中的服务时

NGXS 错误:无法解析 TranslationEditorState 的所有参数:(?)

错误:无法解析ContactService的所有参数:(?)