Angular 2.0 ng-for 不显示 html 标签内的值

Angular 2.0 ng-for not displaying values inside html tags

我正在使用 Angular 2.0 开发的小型应用程序的页脚中构建动态链接。所以,我有这个用于页脚组件:

// the main footer object ..
function FooterComponent() {

    // define the links in the footer ..
    this.footerLinks = [
        {
            'iconName': 'users',
            'title': 'Friends'
        },
        {
            'iconName': 'list-bullet',
            'title': 'List'
        },
        {
            'iconName': 'cog',
            'title': 'Settings'
        }
    ];
}
FooterComponent.annotations = [
    new angular.ComponentAnnotation({
        selector: 'fly-footer'
    }),
    new angular.ViewAnnotation({
        directives: [angular.NgFor],
        templateUrl: 'templates/footer.html'
    })
];

并且到目前为止我已经尝试了这些变体:

<div *ng-for="#footerLink of footerLinks">
    <a href="javascript:;" class="footer-link demo-icon icon-{{footerLink.iconName}}">{{footerLink.title}}</a>
</div>

<a href="javascript:;" *ng-for="#footerLink of footerLinks" class="footer-link demo-icon icon-{{footerLink.iconName}}">{{footerLink.title}}</a>

结果是它们都没有显示图标名称。相反,我看到了(链接的 class):

class="footer-link demo-icon icon-{{footerLink.iconName}} ng-binding"

标题如期出现。

我错过了什么?感谢您的帮助:)

您应该将 CSSClass 添加到您的视图指令列表中:

new angular.ViewAnnotation({
    directives: [angular.NgFor, angular.CSSClass],
    templateUrl: 'templates/footer.html'
})

也看看this plunker

那是因为

class="footer-link demo-icon icon-{{footerLink.iconName}}"

是一个原始字符串,而您希望它表现得像一个表达式。

您想这样做

class="footer-link demo-icon" [class]="'icon-'+footerLink.iconName"

看到这个plnkr

PS : 我完全不建议你坚持使用旧版本。文档已经过时(不断更新但仍然过时)并且新的 alpha 版本不断变化(有很多重大变化)。在发布稳定版本之前,您应该始终坚持使用最新的 alpha 版本。