[解決済み] angular 4でページごとに異なるレイアウトを設定する最適な方法
2023-05-17 02:40:32
質問
私はangular 4の初心者です。私が達成しようとしていることは、私のアプリの異なるページのために異なるレイアウトのヘッダーとフッターを設定することです。私は3つの異なるケースを持っています。
- ログイン、登録ページ (ヘッダーなし、フッターなし)
ルーティングを使用します。['login','register'](ログイン、登録
- マーケティングサイトページ (これはルートパスであり、ヘッダーとフッターを持ちます。ほとんどの場合、これらのセクションはログインの前に来ます)
ルート : ['','about','contact'].
- アプリのログインページ(このセクションには、すべてのアプリのページに対して別のヘッダーとフッターを用意していますが、このヘッダーとフッターは、マーケティングサイトのヘッダーとフッターとは別のものです)
ルート : ['dashboard','profile']です。
ルーターコンポーネントのhtmlにヘッダーとフッターを追加して、アプリを一時的に動かしています。
より良い方法を教えてください。
これは私のコードです。
appapp.routing.ts
const appRoutes: Routes = [
{ path: '', component: HomeComponent},
{ path: 'about', component: AboutComponent},
{ path: 'contact', component: ContactComponent},
{ path: 'login', component: LoginComponent },
{ path: 'register', component: RegisterComponent },
{ path: 'dashboard', component: DashboardComponent },
{ path: 'profile', component: ProfileComponent },
// otherwise redirect to home
{ path: '**', redirectTo: '' }
];
export const routing = RouterModule.forRoot(appRoutes);
app.component.html
<router-outlet></router-outlet>
app/home/home.component.html
<site-header></site-header>
<div class="container">
<p>Here goes my home html</p>
</div>
<site-footer></site-footer>
app/about/about.component.html
<site-header></site-header>
<div class="container">
<p>Here goes my about html</p>
</div>
<site-footer></site-footer>
app/login/login.component.html
<div class="login-container">
<p>Here goes my login html</p>
</div>
app/dashboard/dashboard.component.html
<app-header></app-header>
<div class="container">
<p>Here goes my dashboard html</p>
</div>
<app-footer></app-footer>
私が見たのは この質問 を見ましたが、その答えから明確なイメージを得ることはできませんでした。
どのように解決するのですか?
子ルートを使用することで解決できます。
動作するデモは https://angular-multi-layout-example.stackblitz.io/ または、編集は https://stackblitz.com/edit/angular-multi-layout-example
以下のようにルートを設定します。
const appRoutes: Routes = [
// Site routes goes here
{
path: '',
component: SiteLayoutComponent,
children: [
{ path: '', component: HomeComponent, pathMatch: 'full'},
{ path: 'about', component: AboutComponent }
]
},
// App routes goes here
{
path: '',
component: AppLayoutComponent,
children: [
{ path: 'dashboard', component: DashboardComponent },
{ path: 'profile', component: ProfileComponent }
]
},
// no layout routes
{ path: 'login', component: LoginComponent},
{ path: 'register', component: RegisterComponent },
// otherwise redirect to home
{ path: '**', redirectTo: '' }
];
export const routing = RouterModule.forRoot(appRoutes);
関連
-
[解決済み] 別のプロセス(id #######)が現在 ngcc を実行しています。
-
[解決済み] AngularでEventEmitterに2つのパラメータを渡すには?
-
[解決済み] 簡単なパイプで小数点以下2桁に制限する
-
[解決済み] Angular CLIで特定のバージョンのAngularをインストールするには?
-
[解決済み] Angular2のテーブル行をコンポーネント化
-
[解決済み] 角度の2つのスイッチケース値
-
[解決済み] コンポーネントではなくクラスにサービスをインジェクトする方法
-
[解決済み] Angularで確認ダイアログを作る簡単な方法?
-
[解決済み] Angular Material 2 ネストされたオブジェクトによるデータテーブルのソート
-
[解決済み] Angular - ngForの中のngIfの中のパラメータを持つng-template [重複]。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] コンポーネントクラスからテンプレート参照変数にアクセスする
-
[解決済み] Angular 2のFormGroupからすべての検証エラーを取得する
-
[解決済み] Angular 4+ ngOnDestroy() サービス中 - observableを破壊する
-
[解決済み] プロパティ 'X' はプライベートであり、クラス 'xyzComponent' 内でのみアクセス可能です。
-
[解決済み] Angularで、コントロールが作成された後、FormControlにバリデータを追加する方法は?
-
[解決済み] 遅延のあるobservableを作成するには?
-
[解決済み] Angular : ルートへの手動リダイレクト
-
[解決済み] Angularのビルドと実行方法
-
[解決済み] mat-selectでデフォルトのオプションを設定する
-
[解決済み] Angular6でパスワードの検証を確認する [重複]。