对不起伙计们。我是Angular 2的新手。你可能会认为这是重复,但我在这里遇到很多问题。我已经搜索了这个问题并得到了答案,但我无法实现它。 此答案提供了此答案的可能解决方案:Iterate over TypeScript Dictionary in Angular 2
解决方案是使用管道。但我对语法有一些疑问,我无法找到它,所以请专家如何使用它!这个解决方案不使用管道,但我仍然尝试过,因为我试图实现的所有其他方法的错误是相同的
import {Component} from 'angular2/core';
@Component({
selector: 'component',
templateUrl: `
<ul>
<li *ngFor="#key of keys();">{{key}}:{{myDict[key]}}</li>
</ul>
`
})
export class Home {
myDict : Dictionary;
constructor() {
this.myDict = {'key1':'value1','key2':'value2'};
}
keys() : Array<string> {
return Object.keys(this.myDict);
}
}
interface Dictionary {
[ index: string ]: string
}
行:
<li *ngFor="#key of keys();">{{key}}:{{myDict[key]}}</li>
每次我尝试实现它时,都会显示错误。它始终是相同的:在#keys下和键下()
,这是显示的控制台错误消息:
zone.js:355 Unhandled Promise rejection: Template parse errors:
Parser Error: Unexpected token #, expected identifier, keyword, or string at column 11 in [ngFor let #key of keys();] in AppComponent@12:11 ("
<ul>
<li [ERROR ->]*ngFor="let #key of keys();">{{key}}:{{myDict[key]}}</li>
</ul>
"): AppComponent@12:11
Parser Error: Unexpected token #, expected identifier, keyword, or string at column 11 in [ngFor let #key of keys();] in AppComponent@12:11 ("
<ul>
<li *ngFor="let #key of keys();">[ERROR ->]{{key}}:{{myDict[key]}}</li>
</ul>
"):
请建议我做什么。我在这里失踪了什么? 链接中提到的其他几个解决方案也显示了相同的错误。所以如果我解决了这个问题,我也可以解决其他问题。 谢谢
答案 0 :(得分:4)
使用let
而非#
- 自RC.6