2017-10-31 11 views
0

3 일부터이 달콤한 문제에 직면했습니다. 이 단일 HTML 코드로 시작해 보겠습니다.router 링크가 작동하지 않습니다.

<mat-list-item *ngFor="let setting of SideBarLinks" 
        [ngStyle]="{'display': setting['_value'] === true ? 'block':'none'}" routerLink="[{{setting.link}}]"> 
     <mat-icon mat-list-icon>{{setting['icon']}}</mat-icon> 
     {{setting.name}} 
</mat-list-item> 

문제는 내가 클릭 할 때 아무 것도 만들지 않는다는 것입니다. 응용 프로그램에 연결된 별도의 JSON을 사용하여 사이드 바에서 목록을 자동화하려고했습니다. AngularX을 약 1 년 동안 사용하고 있으며 routerLink 지시문이 존재하는 모든 구성 요소에서 작동하지 않는다는 것을 알고 있습니다. 내가합니다 (* ngFor없이) 단일 구성 요소로 사용할 때

다음

+0

시도 [routerLink] = "setting.link" –

답변

1

올바른 구문 같은 :

[routerLink]="[setting.link]"> 

[]는 값을 의미하고 {{}} 구문을 사용하여 동적으로 만들 수 있습니다. 대괄호는 표현식을 의미합니다. routerLink 배열 구문을 사용하기 때문에 필요하다고 가정하고 있습니다. 즉식이 필요합니다.

+0

당신의 대답을 시도했습니다. ,하지만 난 내가 작동하지 않는다고 생각 ... 내가 webapp을 렌더링 할 때 구성 요소를 검사하면 목록 항목이 routerLink없이 표시됩니다 ... 목록 항목이 routerLink 속성을 잃어버린 것처럼 보입니다. 링크 항목 –

+0

라우터 링크가 어떻게 작동하는지 이해하지 못 하겠지만 dev 도구로 검사 할 때 요소에 있어야하는 것은 아닙니다. plunkr을 함께 사용하면이 기능이 작동한다는 것을 알게되어 기쁘게 생각합니다. 너는 다른 곳에 잘못 가고있어. "routerLink 지시문이 존재하는 모든 구성 요소에서 작동하지 않는다는 것을 알고 있습니다."라는 진술은 존재하는 모든 구성 요소에 대해 작동하기 때문에 각도 라우터의 내부 작동을 잘 모르고 있다고 말해줍니다. – bryan60

+0

잠깐, 나는 당신의 질문을 이해했다 ... 당신은 실제로 재료 목록 항목을 링크로 만들려고하고 있습니까? 물론 작동하지 않습니다. 라우터 링크는 앵커 및 버튼에서만 지원됩니다. 앵커 태그를 만들어야합니다. 이봐. – bryan60

0

이 호출 다음 방법을

getRouerLink(link) { 
    return [link]; 
} 

을 만드는 시도하고 이해하는 데 도움이 될 수 image입니다 당신의 *에서 ngFor routerLink = "getRouterLink(setting.link)"

+0

고맙습니다. 최대한 빨리 시도하겠습니다. –

+0

다른 답변처럼 작동하지 않습니다. 구성 요소가 라우터 링크를 허용하지 않습니다. * ngFor –

+0

다음 '설정'개체에 정보가 있거나 올바른 정보가 있는지 확인하십시오. 너 검사 해 봤니? – komron