我是Angular 2的新手。我對Angular 2的理解是,它基於TypeScript,它將源代碼編譯爲Javascript。作爲一種編譯語言,我希望它能夠捕獲任何未定義的變量,但似乎並非如此,ngFor
。例如,在下面的代碼中(我使用VS代碼),ngFor
用於迭代對象heroes
,如果沒有定義heroes
(當我定義heroes
時,我得到了一個錯字並將其定義爲heros
,它不會給我任何錯誤,最後一行):Angular爲什麼不檢查迭代對象是否存在?
import { Component } from '@angular/core';
*export class Hero {
id: number;
name: string;
}
const HEROES: Hero[] = [
{ id: 11, name: 'Mr. Nice' },
{ id: 12, name: 'Narco' },
{ id: 13, name: 'Bombasto' },
{ id: 14, name: 'Celeritas' },
{ id: 15, name: 'Magneta' },
{ id: 16, name: 'RubberMan' },
{ id: 17, name: 'Dynama' },
{ id: 18, name: 'Dr IQ' },
{ id: 19, name: 'Magma' },
{ id: 20, name: 'Tornado' }
];
@Component({
selector: 'my-app',
template: `
<h1>{{title}}</h1>
<h2>My Heroes</h2>
<ul class="heroes">
<li *ngFor="let hero of heroes" >
<span class="badge">{{hero.id}}</span> {{hero.name}}
</li>
</ul>
`
})
export class AppComponent {
name = 'Angular';
title = 'Tour of Heroes';
heros = HEROES;
}*
請問有人向我解釋爲什麼?我是否期望太多?
你工作的代碼在哪裏? –
花幾分鐘時間閱讀並理解[問]和[mcve],然後用適當的細節和相關代碼更新問題 – charlietfl
問題足夠完整。它只是格式化被搞砸了,所以代碼不可見。 – thorn