在角度5中映射两个组件并尝试在子

时间:2018-03-22 05:54:00

标签: angular

我很有棱角。我试图实现,因为菜单从家里填充,menumodel与home.component.html绑定,但我有另一个选项卡applyTab,它在切换时显示树结构的一些值。所以如果打开applytab并且从节点显示相同的值,我必须填充一个子菜单。我正在尝试在应用选项卡中填充menumodel,并在调用已在应用选项卡中调用的方法时显示值。我在进行映射时遇到了这个错误。

以下是我目前的做法

在应用标签

import { HomeComponent } from 'app/home/home.component';


@Input() public home: HomeComponent;

this.home.menuModel =  this.items = [{
  label: 'Add',
  items: [{
    label: 'Tree', 
  },
    { label: 'Show ID', 
    command: (event) => {
     this.toggleNodeDisplay();
  }
  }
  ]
}
];

在进行两个组件的映射时,我得到以下错误。

  

错误错误:未捕获(在承诺中):错误:类型HomeComponent是部分   2个模块的声明:HomeModule和ApplyModule!请   考虑将HomeComponent移动到更高的导入模块   HomeModule和ApplyModule。您还可以创建一个新的NgModule   导出并包含HomeComponent然后导入NgModule   HomeModule和ApplyModule。错误:类型HomeComponent是其中的一部分   2个模块的声明:HomeModule和ApplyModule!请考虑   将HomeComponent移动到更高的模块,导入HomeModule和   ApplyModule。您还可以创建一个导出和导出的新NgModule   包括HomeComponent然后导入HomerModule中的NgModule和   ApplyModule。

     

at syntaxError(compiler.js:485)       at CompileMetadataResolver._addTypeToModule(compiler.js:15373)       在eval(compiler.js:15245)       在Array.forEach()       at CompileMetadataResolver.getNgModuleMetadata(compiler.js:15236)       在JitCompiler._loadModules(compiler.js:34226)       在JitCompiler._compileModuleAndComponents(compiler.js:34187)       在JitCompiler.compileModuleAsync(compiler.js:34081)       在CompilerImpl.compileModuleAsync(platform-b​​rowser-dynamic.js:230)       在eval(core.js:6589)       在syntaxError(compiler.js:485)       at CompileMetadataResolver._addTypeToModule(compiler.js:15373)       在eval(compiler.js:15245)       在Array.forEach()       at CompileMetadataResolver.getNgModuleMetadata(compiler.js:15236)       在JitCompiler._loadModules(compiler.js:34226)       在JitCompiler._compileModuleAndComponents(compiler.js:34187)       在JitCompiler.compileModuleAsync(compiler.js:34081)       在CompilerImpl.compileModuleAsync(platform-b​​rowser-dynamic.js:230)       在eval(core.js:6589)       at resolvePromise(zone.js:824)       at resolvePromise(zone.js:795)       在eval(zone.js:873)       在ZoneDelegate.invokeTask(zone.js:425)       at Object.onInvokeTask(core.js:4747)       在ZoneDelegate.invokeTask(zone.js:424)       在Zone.runTask(zone.js:192)       在drainMicroTaskQueue(zone.js:602)       在ZoneTask.invokeTask [作为调用](zone.js:503)       at invokeTask(zone.js:1540)       defaultErrorLogger @ core.js:1427       ErrorHandler.handleError @ core.js:1488       next @ core.js:5503       schedulerFn @ core.js:4342       SafeSubscriber .__ tryOrUnsub @ Subscriber.js:239       SafeSubscriber.next @ Subscriber.js:186       Subscriber._next @ Subscriber.js:127       Subscriber.next @ Subscriber.js:91       Subject.next @ Subject.js:56       EventEmitter.emit @ core.js:4322       (匿名)@ core.js:4778       ZoneDelegate.invoke @ zone.js:392       Zone.run @ zone.js:142       NgZone.runOutsideAngular @ core.js:4704       onHandleError @ core.js:4778       ZoneDelegate.handleError @ zone.js:396       Zone.runGuarded @ zone.js:158       _loop_1 @ zone.js:702       api.microtaskDrainDone @ zone.js:711       drainMicroTaskQueue @ zone.js:610       ZoneTask.invokeTask @ zone.js:503       invokeTask @ zone.js:1540       globalZoneAwareCallback @ zone.js:1566

1 个答案:

答案 0 :(得分:0)

此错误基本上意味着您HomeComponent已在HomeModuleApplyModule中声明。

组件只应在一个模块中声明。

您可以从这两个模块中删除HomeComponent的声明,将其添加到AppModule中,然后导入AppModule中的两个模块。

这样,您的错误就会得到解决。