2017-09-06 57 views
0

我一直都在角4教程和我來到這裏角4「英雄教程」與「templateUrl」綁定問題,「NgIf」

https://angular.io/tutorial/toh-pt3

我跟所有的步驟忠實的,除了1件事: 我真的不喜歡把HTML寫入JS或TS。

所以我的 「英雄詳細信息」 部分應該是這樣的:

@Component({ 
    selector: 'hero-detail', 
    template: ` 
    <div *ngIf="hero"> 
     <h2>{{hero.name}} details!</h2> 
     <div><label>id: </label>{{hero.id}}</div> 
     <div> 
     <label>name: </label> 
     <input [(ngModel)]="hero.name" placeholder="name"/> 
     </div> 
    </div> 
    ` 
}) 

但它看起來是這樣的:

@Component({ 
    selector: "hero-detail", 
    templateUrl: "./templates/heroes_detail.html", 
    styleUrls: ["./css/heroes_detail.css"] 
}) 

當然,我創建的匹配HTML

<div *ngIf="selectedHero"> 
    <h2>{{selectedHero.name}} details!</h2> 
    <div><label>id: </label>{{selectedHero.id}}</div> 
    <div> 
     <label>name: </label> 
     <input [(ngModel)]="selectedHero.name" placeholder="name"/> 
    </div> 
</div> 

THE ISSUE

問題是,如果我使用「模板」它的作品,但如果我使用「templateUrl」它不!

是否有任何像Angular1範圍和ngIf的問題?

+0

您是否收到任何錯誤?你有沒有在你的.ts文件中用selectedHero改變英雄變量? – porgo

+0

哎!你是對的...我錯過了更換:D –

+0

@porgo如果你想回答我可以選擇你的答案 –

回答

1

你在你的HTML文件變英雄可變進selectedHero。在您的組件.ts文件中更改它。

0

這裏的問題

<hero-detail [hero]="selectedHero"></hero-detail> 

這使得在 「英雄」 「selectedHero」。 所以在HTML我必須使用hero而不是selectedHero

希望這有助於