【问题标题】:Can't bind to 'ngforOf' since it isn't a known native property [duplicate]无法绑定到“ngforOf”,因为它不是已知的本机属性[重复]
【发布时间】:2016-06-02 12:40:23
【问题描述】:

无法绑定到“ngforOf”,因为它不是已知的原生属性

    <h4>Colors bad boys</h4>
    <ul><li [ERROR ->]*ngfor="#color of colors">
        <span>{{color.color | upperCase}}</span>
      </li>

尝试通过 TemplateParser 或 RuntimeMetadataResolver 加载模板 并在 angular2 bootstrap 中注入 overwtitten 方法,例如对于 RuntimeMetadataResolver

模板正确加载其内容,但解析失败并出现错误

无法绑定到“ngforOf”,因为它不是已知的原生属性

【问题讨论】:

标签: angular angular-templatecache


【解决方案1】:

注意大小写,*ngFor(大写F),不是*ngforng-for

要修复您的示例,请使用:

...
<ul><li *ngFor="#color of colors">
...

请注意,这里是*ngFor,而不是*ngfor


两个 plunker 显示问题和更正:

这是plunker with that same error you have(查看 app/app.component.ts 和控制台):

无法绑定到“ngforOf”,因为它不是已知的原生属性

然后在this other plunker 中修复完全相同的代码(只是更改了*ngForF)。


最新的 Angular 版本

在最新版本的 Angular 中,我们有 @NgModules 需要一些额外的配置。

要获得*ngFor,您必须在您的应用模块中导入BrowserModule

import { BrowserModule } from '@angular/platform-browser';

@NgModule({
  imports:      [ BrowserModule ],
  // ...
})
export class AppModule { }

In other modules,导入CommonModule

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

@NgModule({
  imports:      [ CommonModule ],
  // ...
})
export class OtherModule { }

【讨论】:

  • 好的,终于不是角度本身的问题@acdcjunior - 感谢您突出显示它 - 似乎
  • 奇怪。这种由浏览器转换为小写的情况不应该发生。无论如何,我不是 100%,您是否仍然遇到问题或已解决?
  • 似乎是浏览器的默认行为——所有标签和属性都被视为不区分大小写(小写)。要解决 Angular 2 中的 templateCache 问题,需要创建另一个模板缓存类 - 使用简单的 put 和 get 方法(如 angular1 中的 $templateCache )并从那里读取它,而不是在 RuntimeMetadataResolver 中 - 然后注入修改后的模板以加载 templateUrl 字符串(正在处理现在)。所以是的,就 angular2 而言,问题是“固定/清除”。感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2021-03-20
  • 2021-01-06
  • 2021-10-24
  • 2017-03-12
  • 2016-09-05
  • 2019-10-09
  • 2020-06-17
相关资源
最近更新 更多