タブメニューのクリックでコンポーネントテンプレートをロードしたい。
<p-tabMenu class="ui-tabmenu" [model]="items"></p-tabMenu>
this.items = [
{label: 'Contacts', icon: 'fa-bar-chart'},
{label: 'Call Logs', icon: 'fa-calendar'}
];
これは私のコードです。 2つのメニュー連絡先と通話ログが表示されます。 conatctメニューをクリックすると、ロードしたいcontactcomponent.html
そして通話履歴メニューをクリックするとロードcalllogscomponent.html
。どうすればこれを実装できますか?
これがトップレベルメニューである場合(またはメインページのURLを設定する場合)は、ルーターの使用を検討してください。これにより、ルーターに設定されている現在の「ページ」と自動的に同期されます。
https://www.primefaces.org/primeng/#/menumodel
export class MenuDemo implements OnInit {
private items: MenuItem[];
ngOnInit() {
this.items = [{
label: 'File',
items: [
{label: 'New', icon: 'fa-plus', url: 'http://www.primefaces.org/primeng'},
{label: 'Open', icon: 'fa-download', routerLink: ['/pagename']}
]
}];
}
}
<p-tabMenu #menuItems [model]="items" [activeItem]="activeItem" (click)="activateMenu()"></p-tabMenu>
items:MenuItem[];
activeItem: MenuItem;
@ViewChild('menuItems') menu: MenuItem[];
this.items = [
{label: 'Contacts', icon: 'fa-bar-chart'},
{label: 'Call Logs', icon: 'fa-calendar'}
];
this.activeItem = this.items[0];
activateMenu(){
this.activeItem =this.menu['activeItem'];
}
テンプレート参照変数を作成します#menuItemsそしてそれをtsで使用して、そのテンプレートに変更を加えます。別のメニューをクリックすると、トリガーされますactivateMenu()新しい選択されたメニューを設定する関数アクティブなものとして。htmlでは、* ngIfを使用して2つのメニューを切り替えます。 activeItem.label と比較します。
これは私にとってはうまくいきます。
Primeng TabMenuのドキュメントによると、それらによって提供されるそのような機能はありません。属性を設定することしかできません。デフォルトでは、同じコールバック関数は1つもありません。
出典:-* https://www.primefaces.org/primeng/#/tabmen
代わりに、ページをリダイレクトするためにbreadcrumb
を使用できます。必要に応じて、cssでパンくずリストを作成するよりも、URLを指定することもできます。
https://www.primefaces.org/primeng/#/breadcrumb
ここでこれを使用でき、メニューでコールバック関数とナビゲーションを呼び出すこともできます