2016-05-06 10 views
22

Bileşendeki dinamik öğeler kümesine dayalı olarak bir yönerge içinde routerLink değerini ayarlamaya çalışıyorum. Ama bir hata Angular2 atılan ediliyor:Dinamik yönlendirici ng'den gelen değer ngÜrüne ilişkin hata verme "İfadenin beklendiği yerde enterpolasyon ({{}}) var"

EXCEPTION: Template parse errors: 
Parser Error: Got interpolation ({{}}) where expression was expected at column 1 in [ {{item.routerLink}} ] in [email protected]:40 (" 
    <a *ngFor="let item of headerItems" [ERROR ->][routerLink]=" {{item.routerLink}} "> 
     {{item.text}} 
    </a> 
"): [email protected]:40 

header.component.ts

import {Component} from '@angular/core'; 
import {ROUTER_DIRECTIVES} from '@angular/router-deprecated'; 

@Component({ 
    selector: 'app-header', 
    templateUrl: './app/components/header/header.component.html', 
    directives: [ROUTER_DIRECTIVES] 
}) 
export class AppHeader { 
    headerItems: Object[] = []; 

    constructor() { 
    this.headerItems.push(
     { classes: 'navLink', routerLink: ['/Home'], text: 'Home' } 
    ); 
    } 
} 

header.component.html

<div id="HeaderRegion"> 
    <nav class="nav"> 
    <a *ngFor="let item of headerItems" [routerLink]=" {{item.routerLink}} "> 
     {{item.text}} 
    </a> 
    </nav> 
</div> 
+0

'a' bilinen bir özelliği. ve eğer şablonunuz (benim yaptığım gibi) özel bir modülün içinde ise, modülünüzde de RouterModule'yi almayı unutmayın: -P – ninja

cevap

55

Sen [] kullanamazsınız {{}} ile birlikte veya daha sonra

0 ile birlikte
[routerLink]="item.routerLink" 

İstediğinizi yapmalıyız.

routerLink="item.routerLink" 

routerLink özelliğine item.routerLink.toString() bağlamak istiyorum.

+0

Bunu işe almak için headerItems'i "routerLink: '/ Home" olarak değiştirdim ve ngFor döngüsündeki parantez [], bu [routerLink] bağlantısını yapın: "[item.routerLink]" – kbjerring

+0

Yolun etrafındaki parantezler gerekli olmamalıdır. Angular2 ve yönlendiricinin en yeni sürümünü mi kullanıyorsunuz? –

+0

Üzgünüz, bir fikrin yok. RouterLink, her ikisini de, bir dizi yönlendirici komutunu veya bir yol dizisini destekler. –

2

Cevabı bu sefer bulabilirdiniz, benim için {{}} kaldırılınca benzer sorun çözüldü. Kişisel kod aşağıdaki gibi

<a *ngFor="let item of headerItems" [routerLink]="item.routerLink"> 
    {{item.text}} 
</a> 
3

şey bizim için çalıştı olabilir: yani [] değerleri değerlendirmek [] gerekli bağlayıcı

<input type="checkbox" [id]="['btn.botStepState-'+i]" [(ngModel)]="btn.botStepState" name="btn.botStepState-{{i}}" (change)="changeHandler($event)" class="cbx hidden" /> 
  • Mülkiyet
  • Modeli özel yani [()] gerekli şey bağlama
  • İnterpolasyon yani {{}} genel nitelikler
  • ile kullanılabilecek
  • yani () fonksiyonları ile harika çalıştı bağlayıcı Olay
  • sadece sorunu, bu değil mi beri ver gülüm Yukarıdaki çözümler 'routerLink' bağlamak Can not eğer vardı