【发布时间】:2016-10-06 15:55:27
【问题描述】:
我正在使用 angular2 和 typescript 开发 nativescript 应用程序。
我有 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、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 []
【问题讨论】:
-
也许您应该在
main.ts文件中声明它们,因为它已经显示在这里 - github.com/tsonevn/NGModalView_question38835363/blob/master/app/… -
我使用这个库作为上游。 github.com/NativeScript/sample-Groceries 它在 main.ts 中导入 AppModule
-
@NikolayTsonev 更新了问题
-
尝试在app.module中添加
declarations三个Component:imageComponentA、pageComponentB、pageComponentC。如果您能提供示例项目,这将有所帮助。 -
我在这里创建了示例项目github.com/matart15/sample-Grossery/commit/… 如果我注释掉这行github.com/matart15/sample-Grossery/commit/… 并在这行注释github.com/matart15/sample-Grossery/commit/… 出现图像。
标签: nativescript angular2-nativescript