質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Router

Routerは、異なるネットワーク同士を相互に接続するための通信機器。インターネットでのデータを自動的に振り分け、一つのインターネット回線を複数のコンピュータで使用することが可能です。DHCPによりIPアドレスを自動的に割振りすることもできます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

2023閲覧

ionic4 navigateByUrlで特定の画面のみ遷移できない

Hyonta

総合スコア36

Ionic

Ionicは、クロスプラットフォームに対応したモバイルアプリ開発のためのオープンソースUIフレームワークです。iOSやAndroid、Webのアプリケーションを1つのコードベースで開発できます。

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Router

Routerは、異なるネットワーク同士を相互に接続するための通信機器。インターネットでのデータを自動的に振り分け、一つのインターネット回線を複数のコンピュータで使用することが可能です。DHCPによりIPアドレスを自動的に割振りすることもできます。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/02/11 09:36

編集2020/02/11 09:42

前提・実現したいこと

ionic3から移行したionic4のアプリでページ遷移を正しく行いたい。
ページ遷移の構成としては、
tabsが一番上にあり、その下にhomeがあり、
そのhomeから設定画面に遷移するという作りになっています。
( tabs⇒home⇒settings )

発生している問題・エラーメッセージ

this.router.navigateByUrl('tabs/home/settings')
で画面遷移を動作させているが、対象ボタンをクリックしても画面遷移しない。
(正しく遷移できるその他画面もあるが、見比べても違いがわかりません。。)

該当のソースコード

home.page.hmtl

html

1<ion-buttons class="settings-button" slot="primary"> 2 <ion-button icon-only (click)="selectFavorites()"> 3 <ion-icon name="ios-settings"></ion-icon> 4 </ion-button> 5</ion-buttons>

ここで設定画面(settings)へ遷移したい
home.page.ts

ts

1selectFavorites() { 2 this.router.navigateByUrl('tabs/home/settings'); 3}

home-routing.module.ts(ボタン押下で、このpath: 'settings'に来ていることは確認済み)

const routes: Routes = [ { path: '', component: HomePage }, { path: 'settings', loadChildren: '../home/fav-settings/fav-settings.module#FavSettingsPageModule' } ]; @NgModule({ imports: [RouterModule.forChild(routes)], exports: [RouterModule], }) export class HomePageRoutingModule {}

settings.module.ts

@NgModule({ imports: [ CommonModule, FormsModule, IonicModule, FavSettingsPageRoutingModule ], declarations: [FavSettingsPage] }) export class FavSettingsPageModule {}

settings-routing.module.ts

const routes: Routes = [ { path: '', component: FavSettingsPage } ]; @NgModule({ imports: [RouterModule.forChild(routes)], exports: [RouterModule], }) export class FavSettingsPageRoutingModule {}

tabs-routing.module.ts

const routes: Routes = [ { path: '', component: TabsPage, children: [ { path: 'home', children: [ { path: '', loadChildren: () => import('../home/home.module').then(m => m.HomePageModule) }, ] }, { path: '', redirectTo: 'home', pathMatch: 'full' } ] }, { path: '', redirectTo: 'home', pathMatch: 'full' } ]; @NgModule({ imports: [RouterModule.forChild(routes)], exports: [RouterModule], }) export class TabsPageRoutingModule {}

app-routing.module.ts

const routes: Routes = [ { path: '', redirectTo: 'home', pathMatch: 'full' }, { path: 'login', loadChildren: () => import('./login/login.module').then( m => m.LoginPageModule) }, { path: 'tabs', loadChildren: () => import('./tabs/tabs.module').then( m => m.TabsPageModule) }, ]; @NgModule({ imports: [ RouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules }) ], exports: [RouterModule] }) export class AppRoutingModule { }

app.module.ts

@NgModule({ declarations: [ AppComponent, ], imports: [ BrowserModule, FormsModule, HttpClientModule, LinkyModule, IonicModule.forRoot({mode:'ios', backButtonText: '', swipeBackEnabled: true}), AppRoutingModule, TranslateModule.forRoot({ loader: { provide: TranslateLoader, useFactory: (createTranslateLoader), deps: [HttpClient] } }), ], bootstrap: [AppComponent], providers: [ Calendar, StatusBar, SplashScreen, InAppBrowser, Geolocation, Network, ] }) export class AppModule { }

ご迷惑をおかけしますが、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問