2017-01-02 59 views
1

我的结构如下:角2全局分量

App 
    *component, module, template* 
    Component 1 
     *component, module, template* 
     Component 11 
      *component, module, template* 
    Global Component 
     *component, temaplte, BUT NO MODULE* 

我的应用模块包含组分1和组分11个模块。我在应用程序模块中声明了全局组件,以便我可以在所有其他组件中使用它。我还将它导出到应用程序模块中。

但是,当我使用组件11模板中的选择器时,控制台说not a known element

我尝试在我的其他组件中导入它,但它表示它已经导入,并且我应该将它导入到更高的模块中。

你能告诉我如何声明一个组件,以便它可以在子模板中使用吗?

+0

你能发表一些代码吗?至少是那些模块文件.. –

+0

您可以检查App组件的模块是否导出Global组件,并且组件的模块是否导入App组件的模块? – Davy

+0

对不起@ 5313M,我不能,堆栈说我的代码有一个缩进问题,即使我显然没有(我的代码是4个空格缩进) – trichetriche

回答

2

我假设“全局组件”在angular 2架构中是未知的。另请参阅此处==>https://angular.io/docs/ts/latest/guide/architecture.html

根据经验我知道,如果组件(例如管道)在app.module级别导入,则可能会出现问题。例如,当你用管道做这件事时,你会得到一个“找不到管道”的错误。也许你遇到了与你的组件类似的问题。

所以我建议让你的组件成为模块的一部分,然后在你的app.module而不是组件中导入你的模块。

+0

对于滥用词语感到抱歉,但对我来说这似乎更清楚。关键是我希望我的组件在几个模块中使用,如果我只将它导入深层模块而不是根模块,是否可以实现? – trichetriche

+2

我认为如果你为这样的全局组件引入了一个“SharedModule”(如Karl建议的),我想你会更好一些 – Davy

+1

因为这个原因,我使用了“toolmodule” – Karl