2017-05-14 7 views
2

Ionicにthis.nav.pushの問題があります。私はログイン/登録ページを行っていますが、ログインするとこのエラーメッセージが表示されます。 login.tsとhome.ts(メインページ)のコードを追加する必要がありますか?Ionic Uncaught(約束しています):無効なリンク

Runtime Error
Uncaught (in promise): invalid link: HomePage


Error: Uncaught (in promise): invalid link: HomePage at d (http://localhost:8100/build/polyfills.js:3:3991) at l (http://localhost:8100/build/polyfills.js:3:3244) at 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) at 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) at n.run (http://localhost:8100/build/polyfills.js:3:6468) at 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) at 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', '[email protected]'); 
     observer.next(access); 
     observer.complete(); 
     }); 
    } 
    } 

このコードが間違っている理由はわかりません。マイホームページINY私のアプリは、あなたが何をする必要があるかホームページ

+0

ようこそStackOverflow!私たちがあなたのお手伝いをするために、あなたの質問を更新して、関連するすべてのコードを[**最小で、完全で、検証可能な例**](http://stackoverflow.com/help/mcve)に表示してください。あなたの問題を解決するためにこれまでに試したことをお聞かせください。詳細については、[**よくある質問をどうやるか**](http://stackoverflow.com/help/how-to-ask)に関するヘルプ記事を参照して、サイトの[**ツアー**](http://stackoverflow.com/tour):) –

答えて

5

は@IonicPageを(追加することですされhome.tsクラスである)「@Component」の前にこのようなインポート「IonicPage」: import {NavController, IonicPage} from 'ionic-angular';

その後、あなたが書くとき、あなたのコード内の唯一の問題はあるプロジェクト

+0

これは私のために働いた、tnx! –

3

を、ホームディレクトリ、すなわち、ホームページ用のモジュールを作成するには、次の内容

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 {} 

でhome.module.tsを作成し、再ロードする必要があります this.nav.push('HomePage');ページを呼び出すときに 」の引用符を削除して、このように記述してください。

this.nav.push(HomePage);引用符なし。

Above answer is for ionic2, in ionic3 there is lazy loading where you call like this this.nav.push('HomePage');

関連する問題