首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ngFor无法通过使用@Input的组件绑定在另一个组件中迭代

ngFor是Angular框架中的一个指令,用于在模板中进行循环迭代。它可以用来遍历一个集合,并为集合中的每个元素生成相应的HTML代码。

在使用ngFor指令时,可以通过@Input装饰器将数据从一个组件传递到另一个组件。@Input装饰器允许将属性声明为可从父组件传递的输入属性。

然而,ngFor指令无法直接通过使用@Input的组件绑定在另一个组件中进行迭代。这是因为ngFor指令需要在模板中进行循环迭代,而模板是由组件的视图控制的。因此,ngFor指令只能在组件的模板中使用。

如果想要在一个组件中使用ngFor指令进行迭代,可以通过在该组件的模板中使用ngFor指令来实现。首先,在父组件中定义一个包含要迭代的数据的属性,然后在父组件的模板中使用ngFor指令来循环迭代这个属性。接下来,在ngFor指令的循环体中,可以使用子组件来展示每个元素的内容。

以下是一个示例:

父组件中的模板:

代码语言:txt
复制
<app-child *ngFor="let item of items" [data]="item"></app-child>

父组件中的代码:

代码语言:txt
复制
import { Component } from '@angular/core';

@Component({
  selector: 'app-parent',
  template: `
    <app-child *ngFor="let item of items" [data]="item"></app-child>
  `
})
export class ParentComponent {
  items: any[] = [
    { name: 'Item 1' },
    { name: 'Item 2' },
    { name: 'Item 3' }
  ];
}

子组件中的代码:

代码语言:txt
复制
import { Component, Input } from '@angular/core';

@Component({
  selector: 'app-child',
  template: `
    <div>{{ data.name }}</div>
  `
})
export class ChildComponent {
  @Input() data: any;
}

在上面的示例中,父组件通过ngFor指令循环迭代items数组,并将每个元素传递给子组件的data属性。子组件则使用@Input装饰器接收父组件传递的数据,并在模板中展示。

对于这个问题,腾讯云提供的相关产品是腾讯云云服务器(CVM)。腾讯云云服务器是一种弹性计算服务,提供了可扩展的计算能力,适用于各种场景和工作负载。您可以根据实际需求选择不同配置的云服务器,并通过腾讯云控制台或API进行管理和操作。

腾讯云云服务器产品介绍链接地址:腾讯云云服务器

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

AngularDart4.0 指南- 模板语法二 顶

NgFor:为列表每个项目重复一个模板。 NgSwitch:只显示多个可能元素一个。 NgIf  您可以通过向该元素应用NgIf指令(称为宿主元素)来添加或移除DOM元素。...分配给* ngFor文本是指导迭代器进程指令。 *ngFor微语法 分配给* ngFor字符串不是模板表达式。 这是一种微语法 - Angular解释一种小语言。...模板输入变量 hero之前let关键字创建一个名为hero模板输入变量。 ngFor指令迭代由父组件heroes属性返回heroes,并在每次迭代期间将hero设置为列表的当前项目。...* ngFor与index(索引) NgFor指令上下文index属性返回每个迭代项目的从零开始索引。 您可以捕获模板输入变量index,并在模板中使用它。...它别无选择,只能拆除旧DOM元素并插入所有新DOM元素。 Angular可以通过trackBy避免这种流失。 向组件添加一个返回NgFor应跟踪值方法。 在这个例子,这个值就是英雄ID。

30K20
  • Angular 2 架构(下)

    保存 双向: 使用Angular里NgModel指令可以更便捷进行双向绑定。...在Angular包含以下三种类型指令: 属性指令:以元素属性形式来使用指令。 结构指令:用来改变DOM树结构 组件:作为指令一个重要子类,组件本质上可以看作是一个带有模板指令。...---- 服务(Services) Angular2服务是封装了某一特定功能,并且可以通过注入方式供他人使用独立模块。 服务分为很多种,包括:值、函数,以及应用所需特性。...通过控制反转,对象在被创建时候,由一个调控系统内所有对象外界实体,将其所依赖对象引用传递给它。也可以说,依赖被注入到对象。...这种控制反转,运行注入特点即是依赖注入精华所在。 Angular 能通过查看构造函数参数类型,来得知组件需要哪些服务。

    2.2K20

    AngularDart 4.0 高级-结构指令 顶

    Angular设置let-hero为上下文$implicit属性值,NgFor已经用当前迭代hero初始化了它值。 API指南描述了额外NgFor指令属性和上下文属性。...当你编写自己结构指令时,可以使用这些微观语法机制。 研究NgIf和NgFor源代码是了解更多信息好方法。 模板输入变量 模板输入变量是一个变量,其值可以在模板单个实例引用。...变量作用域限于重复模板单个实例。 您可以在其他结构指令定义再次使用相同变量名称。 您通过在#(#var)前缀加上变量名称来声明一个模板引用变量。 引用变量是指其附加元素,组件或指令。...兄弟元素组 根元素通常能且应该成为结构指令宿主,列表元素()是NgFor迭代典型宿主元素。...打算在其他地方使用p span样式无意中应用于此处。 另一个问题:一些HTML元素要求所有直系孩子属于特定类型。 例如,元素需要子元素。

    16.1K20

    AngularDart4.0 英雄之旅-教程-04明细 顶

    -- each hero goes here --> 下一步你将添加英雄名字 使用ngFor指令罗列英雄 目标是将组件英雄列表绑定到模板,迭代它们,并单独显示它们。...通过添加核心指令* ngFor修改标签。 ngFor前缀(*)是此语法关键部分。...ngFor指令遍历组件英雄列表并为该列表每个英雄呈现该模板一个实例。 表达式部分将hero标识为模板输入变量,其中包含每个迭代英雄详情。...> {{hero.name}} 要在模板中使用Angular指令,需要在组件@Component注解指令参数列出。...您将Hero类移到lib / src下自己文件。 你增加了选择英雄和显示英雄细节能力。 您了解了如何在组件模板中使用核心指令ngIf和ngFor

    3K30

    Angular快速学习笔记(3) -- 组件与模板

    使用插值表达式显示组件属性 要显示组件属性,最简单方式就是通过插值表达式 (interpolation) 来绑定属性名。...angular提供两种地方存放组件模板 你可以使用 template 属性把它定义为内联, 或者把模板定义在一个独立 HTML 文件, 再通过 @Component 装饰器 templateUrl...*ngFor 是 Angular 迭代”指令。...在正常 HTML 开发过程,你使用 HTML 元素来创建视觉结构, 通过把字符串常量设置到元素 attribute 来修改那些元素。...有几种方式把样式加入组件: 设置 styles 或 styleUrls 元数据 内联在模板 HTML 通过 CSS 文件导入 预编译css 如果使用 CLI 进行构建,那么你可以用 sass、less

    15.3K30

    AngularDart4.0 指南-体系结构概述 顶

    您可以通过使用Angular标记组合HTML 模板,编写组件类来管理这些模板,在服务添加应用程序逻辑以及在模块中装入组件和服务来编写Angular应用程序。 然后,通过引导根模块启动应用程序。...当用户点击英雄名字时,(click)事件绑定调用组件selectHero方法。 双向数据绑定是一个重要第四种形式,它使用ngModel指令将属性和事件绑定在一个符号。...数据绑定在模板及其组件之间通信中起着重要作用。 数据绑定对于父组件和子组件之间通信也很重要。 指令 ? Angular模板是动态。...ngModel通过设置其显示值属性并响应更改事件来修改现有元素(通常是)行为。...Pipes:通过转换显示值来改善用户体验。 Router:在客户端应用程序从一个页面到另一个页面进行导航,而不会离开浏览器 Testing:为您应用编写组件测试和端到端测试。

    7.9K30

    Angular DOM 抽象概述

    通过 DOM API 我们能够方便地获取指定元素,比如获取谷歌首页 id 为 q 输入框: document.querySelector("#q"); 查询结果为: <input id="q" aria-hidden...作用 在应用层直接操作 DOM,就会造成应用层与渲染层之间强耦合,导致我们应用无法运行在不同环境,如 Web Worker ,因为在 Web Worker 环境,是不能操作 DOM。...模板元素是一种机制,允许包含加载页面时不渲染,但又可以随后通过 JavaScript 进行实例化客户端内容。我们可以将模板视作为存储在页面上稍后使用一小段内容。...,可能会在某个标签上同时使用 *ngIf 或 *ngFor 指令,比如: <div class="lesson" *ngIf="lessons" *ngFor="let lesson of lessons...entryComponents - 用于指定在模块定义时,需要编译组件列表。

    3.5K30

    Angular 显示英雄列表

    它会为列表每项数据复写它宿主元素。 在这个例子  就是 *ngFor 宿主元素 heroes 就是来自 HeroesComponent 类列表。...当依次遍历这个列表时,hero 会为每个迭代保存当前英雄对象。 不要忘了 ngFor 前面的星号(*),它是该语法关键部分。 浏览器刷新之后,英雄列表出现了。...heroes.component.css 样式只会作用于 HeroesComponent,既不会影响到组件 HTML,也不会影响到其它组件 HTML。...英雄们显示在列表,并且所点英雄详情也显示在了页面的下方。 修复 - 使用 *ngIf 来隐藏空白细节 该组件应该只有当 selectedHero 存在时才显示所选英雄详情。...用户可以选择一个英雄,并查看该英雄详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 样式类。

    4.4K70

    Angular快速学习笔记(2) -- 架构

    使用服务好处是服务可以作为依赖被注入到组件,实现复用,同时还能方便不同模块做通信。 组件和服务都是简单类,这些类使用装饰器来标出它们类型。...但是,任何模块都能包含任意数量其它组件,这些组件可以通过路由器加载,也可以通过模板创建。那些属于这个 NgModule 组件会共享同一个编译上下文环境。 ?... 在双向绑定,数据属性值通过属性绑定从组件流到输入框。用户修改通过事件绑定流回组件,把属性值设置为最新值。...数据绑定在模板及其组件之间通讯扮演了非常重要角色,它对于父组件和子组件之间通讯也同样重要。 ? 父组件通过属性绑定向子组件传递数据,而子组件通过事件绑定向与父组件通信。...(比如另一个服务、管道或 NgModule)拥有一个依赖。

    5.3K20

    Angular 从入坑到挖坑 - 组件食用指南

    一、Overview angular 入坑记录笔记第二篇,介绍组件相关概念,以及如何在 angular 通过使用组件来完成系统功能实现 对应官方文档地址: 显示数据 模板语法 用户输入 组件之间交互...指令上下文中 index 属性在每次迭代,会获取到条数据索引值 当渲染数据发生改变时 4,会导致 dom 元素重新渲染,此时可以采用 trackBy 方式,通过组件添加一个方法,指定循环需要跟踪属性值...@Input 用来获取数据,@Output 用来向外发送数据 4.4.2、子组件获取父组件信息 在父组件,添加对于子组件引用,并将需要传递数据 or 方法绑定到子组件上 传递数据直接将父组件属性值赋值给绑定在组件属性就可以了...@Input 装饰器获取到组件数据,可以通过输入属性 setter 方法中进行重新赋值 ?...在组件使用服务 在需要使用组件引入服务,然后在组件构造函数通过依赖注入方式注入这个服务,就可以在组件完成对于这个服务使用 在父组件对数据进行赋值,然后调用服务方法改变数据信息

    15.8K30

    Angular2 之 结构型指令几个概念

    结构型指令 结构型指令通过添加和删除 DOM 元素来改变DOM布局。 我们经常看到内置结构型指令有:ngIf、ngSwitch、ngFor。 下面我们着重介绍ngIf。...angular会从DOM移除该元素,停止相关组件变更检测,把它从DOM事件移除,并且销毁组件组件会被垃圾回收,并释放内存。...总结 基于上面的利弊分析,无论是我们在使用内置指令还是使用自定指令时候,我们应该自己分析提添加、移除元素以及创建和销毁组件后果。...而在Angular应用,Angular会移除 标签及其子元素。 我们可以通过把短语"Hip! Hip! Hooray!"...要么显示包含在Template标签,要么隐式使用*这种语法糖去包装在Template标签。它简化了ngIf和ngFor —— 无论是写还是读。

    3K20

    Angular 显示英雄列表

    它会为列表每项数据复写它宿主元素。 在这个例子  就是 *ngFor 宿主元素 heroes 就是来自 HeroesComponent 类列表。...当依次遍历这个列表时,hero 会为每个迭代保存当前英雄对象。 不要忘了 ngFor 前面的星号(*),它是该语法关键部分。 浏览器刷新之后,英雄列表出现了。...heroes.component.css 样式只会作用于 HeroesComponent,既不会影响到组件 HTML,也不会影响到其它组件 HTML。...英雄们显示在列表,并且所点英雄详情也显示在了页面的下方。 修复 - 使用 *ngIf 来隐藏空白细节 该组件应该只有当 selectedHero 存在时才显示所选英雄详情。...用户可以选择一个英雄,并查看该英雄详情。 你使用 *ngFor 显示了一个列表。 你使用 *ngIf 来根据条件包含或排除了一段 HTML。 你可以用 class 绑定来切换 CSS 样式类。

    4K30

    Angular: 最佳实践

    在应用程序 tsconfig.json 文件,我们可以设置这个标志,告诉编辑器在未明确类型时候抛出错误。否则,编辑器坚定它无法推断变量类型,而认为是 any 类型。...并且在模版每个地方都会显示通知,你可以使用 ngClass 设置未通知样式。现在,我们想将通知状态与枚举值进行比较,我们必须将枚举导入组件。...小经验:当我们在带有子元素 HTML 元素上编写 ngFor 指令时,请考虑将该元素分离为单独组件,就像下面: <div *ngFor="let user...模版 Templates Angular 是使用 html 模版(当然,还有组件、指令和管道)去渲染你应用程序视图 ,所以编写模版是不可避免事情,并且要保持模版整洁和易于理解是很重要。...比如,你想在模版为未正确填写表单控件添加 has-error 类(也就是说并非所有的校验都通过)。

    2.8K40

    AngularDart4.0 指南- 表单 顶

    模板驱动形式 您可以通过使用本页描述特定于表单指令和技术在Angular模板语法编写模板来构建表单。 您也可以使用响应式(或模型驱动)方法来构建表单。...您将在表单添加一个select,并使用ngFor(先前在“显示数据”页面中看到一种技术)将选项绑定到powers列表。...p模板输入变量在每次迭代是不同power; 您使用插值语法显示其名称。 与ngModel双向数据绑定 现在运行应用程序有点令人失望。 ? 你没有看到英雄数据,因为你还没有绑定到英雄。...使用name和类绑定来有条件地分配适当表单有效性类。 临时将另一个名为spy模板引用变量添加到Name 标记,并使用它显示输入CSS类。...在此页面,您学习了如何使用以下功能: 一个HTML表单模板和一个带有@Component注解表单组件类。 表单提交,通过ngSubmit事件绑定处理。

    17.5K30
    领券