Ionic Uncaught(承诺):链接无效

时间:2017-05-14 22:41:18

标签: ionic3

我在Ionic中遇到了this.nav.push的问题。我已经完成了登录/注册页面,但是当我登录时,我收到此错误消息。我必须从login.ts添加代码,例如home.ts(这是主页)?

  

运行时错误
  未捕获(承诺):链接无效:主页

  

错误:未捕获(在承诺中):无效链接:HomePage       在d(http://localhost:8100/build/polyfills.js:3:3991)       在l(http://localhost:8100/build/polyfills.js:3:3244)       在Object.reject(http://localhost:8100/build/polyfills.js:3:2600)       at NavControllerBase._fireError(http://localhost:8100/build/main.js:45465:16)       at NavControllerBase._failed(http://localhost:8100/build/main.js:45453:14)       在http://localhost:8100/build/main.js:45508:59       at t.invoke(http://localhost:8100/build/polyfills.js:3:11562)       at Object.onInvoke(http://localhost:8100/build/main.js:4622:37)       at t.invoke(http://localhost:8100/build/polyfills.js:3:11502)       在n.run(http://localhost:8100/build/polyfills.js:3:6468)       在http://localhost:8100/build/polyfills.js:3:3767       at t.invokeTask(http://localhost:8100/build/polyfills.js:3:12256)       at Object.onInvokeTask(http://localhost:8100/build/main.js:4613:37)       at t.invokeTask(http://localhost:8100/build/polyfills.js:3:12177)       在n.runTask(http://localhost:8100/build/polyfills.js:3:7153

@edit:当我想登录我的应用程序时出现问题。这是代码响应者  登录。

login.ts

public login() {
    this.showLoading()
    this.auth.login(this.registerCredentials).subscribe(allowed => {
      if (allowed) {        
       this.nav.push('HomePage');
      } else {
        this.showError("Access Denied");
      }
    },
      error => {
        this.showError(error);
      });
    }

auth-service.ts(这是执行我的腰部的公共功能,以及我需要在登录时输入的通行证和电子邮件)

  public login(credentials) {
    if (credentials.email === null || credentials.password === null) {
      return Observable.throw("Please insert credentials");
    } else {
      return Observable.create(observer => {
        // At this point make a request to your backend to make a real check!
        let access = (credentials.password === "pass" && credentials.email === "email");
        this.currentUser = new User('Simon', 'saimon@devdactic.com');
        observer.next(access);
        observer.complete();
      });
    }
  }

我不知道为什么这段代码错了。我的主页我的应用程序是home.ts和类是HomePage

5 个答案:

答案 0 :(得分:16)

你需要做的是在'@Component'之前添加@IonicPage()并像这样导入'IonicPage':  import {NavController, IonicPage} from 'ionic-angular';

然后你需要为主页创建一个模块,即在主目录中,使用以下内容创建home.module.ts

import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { HomePage } from './home';

@NgModule({
  declarations: [
    HomePage
  ],
  imports: [
    IonicPageModule.forChild(HomePage),
  ],
  exports: [
    HomePage
  ]
})
export class HomePageModule {}

并重新加载项目

答案 1 :(得分:8)

代码中唯一的问题是你写的时候 this.nav.push('HomePage');删除' ' 在调用任何页面时引用,并像这样写。

this.nav.push(HomePage);没有引号。

  

以上回答是针对ionic2,在ionic3中你有懒惰的负载   像这样打电话this.nav.push('HomePage');

答案 2 :(得分:0)

我复制了登录示例。错误类似。

主页检查点: (1)检查home.module.ts是否 (2)在' @Component'之前检查@IonicPage()在home.ts (2)面对开放错误时,从app.module.ts中的declaration / entryComponents中删除HomePage

答案 3 :(得分:0)

例如,只需在ts文件中的@component之前添加@IonicPage():

@IonicPage() @零件({     选择器:“页面墙”,     templateUrl:'wall.html', })

答案 4 :(得分:0)

转出再次重新启动服务器后,它的工作原理就像一个魅力,花了我几个小时修复,如果@IonicPage()无法解决问题,只需重新启动服务器即可。即ionic serve。 编码愉快!