当前位置: 首页 > 知识库问答 >
问题:

桶进口似乎破坏了装载顺序

诸俊才
2023-03-14
Error: Cannot resolve all parameters for 'MyComponent'(undefined, FormBuilder).

TypeError: Cannot read property 'toString' of undefined
import {MyService} from '../';

@Component({
    ...,
    providers: [MyService]
})
class MyComponent {
    constructor(service: MyService, fb: FormBuilder) { ... }
    ...
}

我的单元测试设置如下:

import {MyComponent} from './';
import {MyService} from '../';

describe('Component: MyComponent', () => {

    let builder: TestComponentBuilder;

    beforeEachProviders(() => [
        MyService,
        MyComponent
    ]);

    beforeEach(inject([TestComponentBuilder], function (tcb: TestComponentBuilder) {
        builder = tcb;
    }));

    it('should inject the component', inject([MyComponent],      
        (component: MyComponent) => {
            expect(component).toBeTruthy();
        })
    );

}

进口似乎是个问题,因为我试图使用桶:

|
|- my-component
|  |- index.ts
|  |- my.component.ts
|  |- my.component.spec.ts
|
|- my-service
|  |- index.ts
|  |- my.service.ts
|
|- index.ts

在index.ts文件中,我正在执行以下操作:

export * from '<filename>';
export * from '<directory>';
import {MyService} from '../my-service/my.service';
...
const barrels: string[] = [
  ...,

  // App specific barrels.
  'app',
  'app/my-service',
  'app/my-component'
  /** @cli-barrel */
];

const cliSystemConfigPackages: any = {};
barrels.forEach((barrelName: string) => {
  cliSystemConfigPackages[barrelName] = { main: 'index' };
});

/** Type declaration for ambient System. */
declare var System: any;

// Apply the CLI SystemJS configuration.
System.config({
  map: {
    '@angular': 'vendor/@angular',
    'rxjs': 'vendor/rxjs',
    'main': 'main.js'
  },
  packages: cliSystemConfigPackages
});
...

共有1个答案

越心水
2023-03-14

我得看看你进口的桶里的东西才能确定,但听起来你需要改变你桶里出口的顺序。

angular2回购中的一个问题存在于以下位置:https://github.com/Angular/Angular/issues/9334

如果组件(a)从包含a和B的出口的桶中导入并使用服务/组件(B),并且桶中的a出现在B之前,则B的导入值是未定义的。

export * from my-service;
export * from my-component;
 类似资料:
  • 我正试图使Filepond工作,但CSS中的这一行似乎破坏了它-在ul选择器中。 我试着对页面的整个部分进行核化,直到Filepond起作用,将目标锁定在css上,最后在ul{}中找到前面提到的行。我可以把其他的东西都抹掉,只留下那条线,而文件孔仍然坏了,所以我肯定这是问题所在,但我不知道是怎么回事。 我尝试使用Chrome的检查器功能查看运行时页面源代码,但在那里找不到溢出。 然后我使用Note

  • 我有一个简单的积垢项目称为过滤器。在这里,每个过滤器都被分配给一个带有外键的类别。我试图做的是循环遍历每个foregin键,以获得类别名称,而不是显示给用户的id。 我首先获取所有过滤器,并执行模具/转储以检查所有结果是否存在。 尝试将类别名称分配给正确的数组项时,出现以下错误: msgstr"间接修改App\Filter的重载元素没有效果" 所以为了检查发生了什么,我在foreach循环中死了/

  • 我通过anaconda使用tensorflow cpu,在使用命令之后 gpu安装 我收到以下错误信息 File"",第1行,在runfile('C:/用户/g/桌面/大师-项目/高斯ROC示例/神经网络工作Example.py',wdir='C:/用户/g/桌面/大师-项目/高斯ROC示例') 文件“C:\ProgramData\Anaconda3\lib\site packages\spyde

  • 我计划通过存储某种可以在JS中生成的校验和来实现一个解决方案,以确保数据完全存在。如果没有,则清除它并从服务器中取出。

  • 我试图使用注释处理器来生成特定工厂接口的实现。这些接口如下所示: 和 注释处理器正在做正确的事情,并为每个匹配的类生成一个工厂,该工厂用相应的注释进行注释。 注释处理器的输出如下所示: 以及相应的其他类: 但是不能编译TestViewImFactory。错误消息是: “类'TestViewImplFactory'必须声明为抽象或在'ViewFactory'中实现抽象方法创建” Java说,以下是正