2017-09-19 3 views
0

나는 정의에 디스플레이 사용하려고, 그래서 나는 메뉴 항목의 일부 HTML 코드를 추가해야합니다PrimeNG panelMenu에서 템플릿을 사용하는 방법

내 템플릿 :

<p-panelMenu styleClass="main-menu" class="main-menu" [model]="menus"> 
    <ng-template let-menus pTemplate> 
     {{menus.label}} <span>otherStuff</span> 
    </ng-template> 
</p-panelMenu> 

구성 요소 :

this.menus = [ 
     { 
      label: 'Dashboard', 
      icon: 'fa-home', 
      routerLink: '/home' 
     }, 
    ... 

아무 일도 일어나지 않고 템플릿을 추가하지 않은 것처럼 메뉴가 계속 표시됩니다. 나는 무엇을 놓치나요?

+0

그것은 있을까 데모를 가질 수 있습니까? – Vega

+0

내 대답을 확인할 수 있습니까? 나는이 방법을 사용하여 panelMenu에 템플릿을 추가한다고 생각한다. – Chandru

답변

0
당신은 P-panelMenu 내에서 사용할 수 없습니다

그래서 다음과 같이 아래 시도 :

이 시도 :

<p-panelMenu styleClass="main-menu" class="main-menu" [model]="menus"> 
</p-panelMenu> 

component.ts

export class AppComponent implements AfterViewInit { 
    menus: MenuItem[]; 

    constructor(
    ) { 

     this.menus = [{ 
      label: 'Dashboard', 
      icon: 'fa-home', 
      routerLink: '/home' 
     }] 
    } 

    ngAfterViewInit() { 
     let element1 = document.createElement('span') 
     let element2 = document.createTextNode('otherStuff'); 
     element1.appendChild(element2) 
     let d1 = document.getElementsByClassName('ui-menuitem-text')[0].appendChild(element1); 
    } 
} 
+0

이것이 효과가있을 것이라고 생각하지만 DOM 조작을 피하고 싶다. – Lempkin