2016-06-14 128 views
0

以下是我的组件:角2 * ngFor不工作

import { Component } from 'angular2/core'; 

@Component({ 
    selector: 'test', 
    template: 
    ` 
     <ul > 
     <li *ngFor="let t of test"> 
     <span >{{t}}</span> 
     </li> 
     </ul> 
    ` 
}) 

export class TestComponent implements OnInit{ 
    test: string[]; 
    constructor(){ 
    this.test = ["Saab", "Volvo", "BMW"]; 
    } 
} 

我收到以下错误,当我尝试加载组件:

EXCEPTION: Template parse errors: 
    Can't bind to 'ngFor' since it isn't a known native property ("<ul > 
     <li [ERROR ->]*ngFor="let t of test"> 
      <span >{{t}}</span> 
     </li> 
    "): 

而且,我不知道是否我在导入组件时应该使用'@ angular/core'或'angular2/core'。

+0

'@角/ core'来自候选版本和是最近的。不确定为什么你会看到这个错误。 – Katana314

+0

你使用哪个版本的Angular2? –

+0

如果您使用的是“2.0.0-rc.1”,则认为您应该从'@ angular/core'导入 – pingo

回答

-1

您的模板应该是:

<ul> 
    <li *ngFor="#t of test"> 
     <span >{{t}}</span> 
    </li> 
</ul> 

或者这样的新版本:

<ul> 
    <li *ngFor="let t of test"> 
     <span>{{t}}</span> 
    </li> 
</ul> 
+1

不建议在ngFor中使用#并将其所有用法都转换为'let' –

+0

但这不适用于我。 – UnderWood

+0

@UnderWood那么你有一个过时的Angular2版本。 –

0

我经历了类似的行为。问题在于我在我的HTML中包含了最小版本的Angular 2。

如果是这样,尝试包括角

1

使用let解决了这个问题对我来说

<ul> 
 
    <li *ngFor = "let test of testArray">{{test}}</li> 
 
</ul>

2

可能发生的问题处于最小化状态文件,因为你还没有导入通用模块 到您当前使用的模块。

尝试进口

import { CommonModule } from "@angular/common"; 

到您当前的模块,看看问题是否解决。

常见的模块添加所有的内置指令从角2

see commonModule documentation通过angular.io

希望帮助:)