离子无效

  • 本文关键字:无效 ionic2 ionic3
  • 更新时间 :
  • 英文 :


我正在使用Inionicpage文档的说明

但是我收到以下错误:

错误:/app/src/pages/subscribe-channel/subscribe-channel.ts有一个 @ionicpage装饰器, 但是它在/app/src/pages/subscribe-channel/subscribe-channel.module.ts

上没有相应的" ngmodule">

是具体的,我进行了文档中规定的以下更改:

  1. 添加IonicPageModule.forChild(SubscribeChannelPage)

  2. 在组件上添加了@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才能通信。

相关内容

  • 没有找到相关文章

最新更新