我正在使用Inionicpage文档的说明
但是我收到以下错误:
错误:/app/src/pages/subscribe-channel/subscribe-channel.ts有一个 @ionicpage装饰器, 但是它在/app/src/pages/subscribe-channel/subscribe-channel.module.ts
上没有相应的" ngmodule">
是具体的,我进行了文档中规定的以下更改:
-
添加
IonicPageModule.forChild(SubscribeChannelPage)
-
在组件上添加了
@IonicPage()
,即SubscribeChannelPage
我无法共享代码样本,因为它是较大应用程序的一部分。
这里报告了类似的错误:页面有一个@ionicpage装饰器,但没有相应的" ngmodule"
ionicpage在建议的答案中评论了以摆脱此错误。但是,我正在尝试使用离子图,并想知道如何使其起作用。
这是subscribe-channel.ts
import { Component, OnInit } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { IonicPage } from 'ionic-angular';
@IonicPage()
@Component({
selector: 'page-subscribe-channel',
templateUrl: 'subscribe-channel.html'
})
export class SubscribeChannelPage implements OnInit {
constructor() {
}
ngOnInit() {
}
}
这是app.modules.ts
import { NgModule, ErrorHandler, APP_INITIALIZER } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { HttpModule } from '@angular/http';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { IonicPageModule } from 'ionic-angular';
import { MyApp } from './app.component';
import { SubscribeChannelPage } from '../pages/subscribe-channel/subscribe-channel';
@NgModule({
declarations: [
MyApp,
SubscribeChannelPage
],
imports: [
BrowserModule,
HttpModule,
IonicModule.forRoot(MyApp),
IonicPageModule.forChild(SubscribeChannelPage)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
SubscribeChannelPage
],
providers: [
StatusBar,
SplashScreen,
{ provide: ErrorHandler, useClass: IonicErrorHandler }
]
})
export class AppModule { }
@gerdi,答案中的建议有助于避免汇编错误。但是,深链接仍然不起作用,它需要默认页面。
fyi,深层链接在app.module.ts
中的遵循代码较早工作。但是,假设它是将来的更好选择,我正在尝试使用Ionicpage。
IonicModule.forRoot(MyApp, {}, {
links: [
{ component: SubscribeChannelPage, name: 'subscribe', segment: 'subscribe/:channelId' },
]
}),
为了使用 @IonicPage()
," component page" ,您将装饰器添加到需要一个连接的模块。
您遇到的错误基本上是在说。
您添加了@ionicpage((装饰器,但是该组件没有相关的模块。您需要包括一个订阅channel.module.ts文件,该文件在其自己的模块范围内声明此组件。
因此,您需要添加一个subscribe-channel.module.ts
,即模块的声明。
为了更好地理解这一点,您可以进入终端并生成一个新模板,并查看添加
的文件>_ ionic generate page foobar
在Foobar文件夹下,您将看到4个文件是foobar.module.ts
,它是模块声明。
fyi:您需要更改
import { IonicModule } from 'ionic-angular';
to
import { IonicPageModule } from 'ionic-angular';
在生成的模板中。这个新的闪亮的东西似乎仍然存在一些问题
但是,深链接仍然不起作用,它需要默认页面。 仅限。但是,假设它是将来的更好选择,我正在尝试使用Ionicpage。
要进行深链接,您必须在所需离子页面的IonicPage()
装饰器中进行设置。
删除
links: [
{ component: SubscribeChannelPage, name: 'subscribe', segment: 'subscribe/:channelId' },
]
这是在离子3.x
中引入电离之前的尝试:
@IonicPage({
name: 'SubscribeChannelPage',
segment: 'subscribe/:channelId'
})
in subscribe-channel.ts 。示例URL将是:
http://localhost:8101/#/subscribe/:channelId
模块的文件名与组件相同:
-login.ts
-login.module.ts
该模块需要命名为login
才能通信。