Nativescript angular2在其他组件中重用组件

时间:2016-10-05 09:30:23

标签: nativescript angular2-nativescript

我正在使用angular2和typescript开发nativescript app。

我有imageComponentA,pageComponentB,pageComponentC及其模块(imageModuleA,pageModuleB,pageModuleC)。

pageModuleB,pageModuleC是路由中的页面。 imageModuleA是图像(只是<Image src="src"></Image>)。

如果我在pageModuleB中声明imageModuleA,如下所示。 应用程序显示imageModuleA没有问题。

像这样的东西

main.ts
    import { AppModule } from "./app.module";
    platformNativeScriptDynamic().bootstrapModule(AppModule);

app.module  (top module) 
    NgModule
        imports [pageModuleB, pageModuleC] 

pageModuleB
    NgModule
        declarations [imageComponentA] 
pageModuleC
    NgModule
        declarations [] 

然后我想在pageModuleC中重用imageModuleA。 如果我在pageModuleC的模块中声明imageModuleA,则表示'imageComponentA是2个模块的声明的一部分。考虑移动更高的模块'

然后我将imageModuleA一层移到app.module并从pageModuleB中移除了declarion,pageModuleC

app.module (top module) 
    NgModule
        imports [pageModuleB, pageModuleC] 
        declarations [imageComponentA]

pageModuleB
    NgModule
        declarations [] 
pageModuleC
    NgModule
        declarations [] 

它编译并运行应用程序但是imageComponentA没有显示。

我认为这是简单的angular2 NgModule的事情。 我做错了什么?

更新1

我也尝试在app.module中导入imageModuleA

main.ts
    import { AppModule } from "./app.module";
    platformNativeScriptDynamic().bootstrapModule(AppModule);

app.module (top module) 
    NgModule
        imports [imageModuleA, pageModuleB, pageModuleC] 
        declarations []

pageModuleB
    NgModule
        declarations [] 
pageModuleC
    NgModule
        declarations [] 

2 个答案:

答案 0 :(得分:1)

我设法让它发挥作用。我在NgModule中缺少出口

答案 1 :(得分:0)

我认为你需要保持简单的开始,你不需要创建很多模块,只需主应用程序模块就可以了,将你的3个组件添加到app模块声明数组。

请参阅下面的相同代码和输出的屏幕截图

Screenshot

<?xml version="1.0" encoding="UTF-8"?>
<output>
   <result ID="7">true</result>
   <result ID="8">true</result>
   <result ID="9">true</result>
   <result ID="10">false</result>
</output>

我希望这会有所帮助。