Javascript 角度2*Ng,用于不工作

Javascript 角度2*Ng,用于不工作,javascript,angular,ngfor,Javascript,Angular,Ngfor,以下是我的组成部分: import { Component } from 'angular2/core'; @Component({ selector: 'test', template: ` <ul > <li *ngFor="let t of test"> <span >{{t}}</span> </li> </ul>

以下是我的组成部分:

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"];
  }
}
从'angular2/core'导入{Component};
@组成部分({
选择器:“测试”,
模板:
`
    {{t}
` }) 导出类TestComponent实现OnInit{ 测试:字符串[]; 构造函数(){ 这个测试=[“萨博”、“沃尔沃”、“宝马”]; } }
尝试加载组件时,出现以下错误:

  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>
    "): 
异常:模板分析错误:
无法绑定到“ngFor”,因为它不是已知的本机属性(“
    ]*ngFor=“让t离开测试”> {{t} "):

此外,我不确定在导入组件时是否应使用“@angular/core”或“angular2/core”。

您的模板应为:

<ul>
    <li *ngFor="#t of test">
        <span >{{t}}</span>
    </li>
</ul>
    {{t}
或者在较新版本中采用这种方式:

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

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


如果是这样,请尝试使用Let Solved for me将Angular的未缩小文件包括在内

    {{test}
由于您尚未导入公共模块,因此可能会出现问题 到您当前使用的模块

尝试导入

import { CommonModule } from "@angular/common";
进入当前模块,查看问题是否已解决

公共模块添加angular 2中的所有内置指令

通过angular.io


希望有帮助:)

我的问题是,我在使用带有HTML加载程序的Webpack时,在Angular编译HTML之前,将其最小化,从而将
*
ngFor
中删除

{
    test: /\.html$/,
    use: [ {
        loader: 'html-loader',
        options: {
        //minimize: true, // Make sure that you are not minimizing when using Angular
        removeComments: false,
        collapseWhitespace: false
    }
}

我遇到了同样的问题,经过大量的搜索和测试,我才发现我忘记了在模块的“声明”中声明我的组件

从'@angular/core'导入{NgModule};
从“@angular/common”导入{CommonModule};
从'@angular/router'导入{RouterModule};
从“./search.component”导入{SearchComponent};
@NGD模块({
进口:[
公共模块,
RouterModule.forChild([
{路径:'',组件:SearchComponent},
])
],
出口:[
],
声明:[
搜索组件
],
})

export class SearchModule{}
@angular/core
来自发行候选版本,并且是最新版本。不确定您为什么会看到此错误。您使用的是Angular2的哪个版本?如果您使用的是“2.0.0-rc.1”,那么您应该从
@angular/core
导入。我正在尝试在我的电子应用程序中使用Angular2。我按照以下准则设置了环境:但他使用的是angular/core。如果我将package.json更改为从@angular/core导入。需要对gulp文件进行哪些更改。我无法确定哪些文件需要复制到dist文件夹。如果你能解释一下,这将非常有帮助。谢谢您可以尝试使用
*ng代替
。如果这样做有效,那么您就有了一个非常旧的Angular2版本。不再推荐在ngFor中使用#,它的所有用法都应该转换为“let”@UnderWood,那么您就有了一个过时的Angular2版本。@Harrynish我评论说,因为他导入了“Angular2/core”库。因此,他应该以这种方式使用模板。要使用“let”,他应该导入“@angular/core”,明白了!我用的是过时的Angular2版本。现在它对我有用了。谢谢大家!哦,天哪,这是我该做的。如果你知道为什么会这样,你能解释一下吗?为什么页面工作正常,但*ngFor不正常。我不太清楚,但我发现这个答案很清楚