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

如何将父键传递给嵌套的*ngFor angular中的子键

在Angular中,可以通过使用嵌套的*ngFor指令来实现将父键传递给子键。具体的做法是在父键的循环中,使用ng-template标签来定义一个模板,并将父键的值绑定到一个变量上。然后,在子键的循环中,使用ng-container标签包裹需要传递的子键,并在其中使用[ngTemplateOutlet]属性来引用父键的模板,并将绑定的变量作为上下文进行传递。

以下是一个示例代码:

代码语言:txt
复制
<ng-container *ngFor="let parentItem of parentItems">
  <div>{{ parentItem.name }}</div>
  <ng-container *ngFor="let childItem of parentItem.childItems">
    <div>{{ childItem.name }}</div>
    <ng-container [ngTemplateOutlet]="parentTemplate" [ngTemplateOutletContext]="{ parentItem: parentItem }"></ng-container>
  </ng-container>
</ng-container>

<ng-template #parentTemplate let-parentItem>
  <div>{{ parentItem.name }}'s template</div>
</ng-template>

在上面的代码中,我们首先使用*ngFor循环遍历父键parentItems,并将父键的name属性显示出来。然后,在子键的循环中,我们使用ng-container包裹子键,并在其中使用ngTemplateOutlet指令引用了父键的模板parentTemplate,并通过[ngTemplateOutletContext]属性将父键的值以上下文的形式传递给模板。这样,我们就可以在子键的循环中使用父键的值。

需要注意的是,上述代码中的parentItems和childItems分别代表父键和子键的数据源。你可以根据实际情况进行调整。

推荐的腾讯云产品:

  1. 云服务器(CVM):腾讯云提供的弹性云服务器实例,支持多种操作系统和应用场景,具备高性能、高可靠性和弹性扩展能力。详情请参考:云服务器
  2. 云数据库 MySQL版(CMQ):腾讯云提供的高性能、可扩展的云数据库服务,采用分布式架构,提供全面的安全和管理功能。详情请参考:云数据库 MySQL版
  3. 腾讯云函数(SCF):腾讯云提供的无服务器计算服务,可以让开发者无需搭建和管理服务器,仅通过编写函数代码即可实现业务逻辑。详情请参考:腾讯云函数

以上是我根据问题提供的内容所给出的答案,希望对你有帮助。如果你还有任何疑问,请随时提问。

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

相关·内容

Angular核心-父子间组件传递数据-重难点

(达内教育学习笔记)仅供学习交流 Angular核心-父子间组件传递-重难点 Angular核心-父子间组件传递数据-重难点方向一:=》子传递数据方向二:子=》父子组件传递数据简便方法:...Angular核心-父子间组件传递数据-重难点 方向一:=》子传递数据 方向二:子=》 父子组件传递数据简便方法: Vue.js和Angular父子间消息传递原理一样,都可以用口诀:“Props...//输入型属性:组件可以利用这种属性值进来 //得使用装饰器装饰一下 //装饰器要紧挨着要装饰输入型属性 //并且一个装饰器只能管一个 //有很多输入型属性就必须写多个装饰器...('parent.docry():') console.log(e) this.userName = e } //e就是子组件想传递给组件数据 父子组件传递数据简便方法:...(不带#),第二个参数static指定该组件是否为“静态组件”—不会有时有时无组件(比如ngIf,ngFor) 注意: 通过“ViewChild”-视图组件方式,组件可以获得任意子组件数据,

1.2K20

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

调用组件deleteHero方法,传递$event变量hero-to-delete(由HeroDetail发出)。...警惕隐藏大型组件树; NgIf可能是更安全选择。 警惕null ngIf指令通常用于防止null。 显示/隐藏是无用。 如果嵌套表达式试图访问null属性,Angular会抛出一个错误。...模板输入变量 hero之前let关键字创建一个名为hero模板输入变量。 ngFor指令迭代由组件heroes属性返回heroes,并在每次迭代期间将hero设置为列表的当前项目。...要访问hero属性,请参考ngFor宿主元素(或其后代内)hero输入变量。在这里,英雄首先在插值中被引用,然后传递给组件hero属性绑定。...但是NgForm指令有,它解释了如果heroForm.form.valid无效并且将整个表单控件树传递给组件onSubmit方法,您可以禁用提交按钮。

30K20
  • Angular 从入坑到挖坑 - Router 路由使用入门指北

    一、Overview Angular 入坑记录笔记第五篇,因为一直在加班缘故拖了有一个多月,主要是介绍在 Angular 如何配置路由,完成重定向以及参数传递。...四、Step by Step 4.1、基础概念 4.1.1、base url 在 Angular 应用,框架会自动将 index.html 文件 base url 配置作为组件、模板和模块文件基础路径地址...4.2.2、动态路由传递 与使用查询参数不同,使用动态路由进行参数值时,需要我们在定义路由时就提供参数占位符信息,例如在下面定义路由代码里,对于组件所需参数 newsId,我们需要在定义路由时就指明...4.3、嵌套路由 在一些情况下,路由是存在嵌套关系,例如下面这个页面,只有当我们点击资源这个顶部菜单后,它才会显示出左侧这些菜单,也就是说这个页面左侧菜单级菜单是顶部资源菜单 ?...,因此当嵌套路由配置完成之后,在嵌套级页面上,我们需要定义一个 标签用来指定子路由渲染出口,最终效果如下图所示 我是路由页面显示内容

    4.2K50

    Angular 6.x 基础教程

    本系列教程主要内容来源于 egghead.io get-started-with-angular 视频教程,但针对视频介绍知识点做了适当地补充,建议有兴趣同学直接查看该视频教程。..."onEnter($event, myInput.value)" 表达式表示我们监听键盘 enter 按下事件,当我们按下键盘 enter 时,将会调用组件类定义 onEnter() 方法。...指令 在 Angular 我们可以使用 ngFor 指令来显示数组每一项信息。...true even: boolean —— 若当前项索引值是偶数,则返回 true odd: boolean —— 若当前项索引值是奇数,则返回 true 需要注意是,*ngFor * 号是语法糖...第九节 - 使用 Output 装饰器 Output 装饰器作用是用来实现子组件将信息,通过事件形式通知到级组件。

    15.6K20

    AngularDart4.0 指南- 用户输入 顶

    本节介绍如何绑定到输入框按键事件,以在每次按键后获取用户输入。 下面的代码监听一个keyup事件,并将整个事件有效载荷($ event)传递给组件事件处理程序。...当用户按下并释放一个时,会发生一个键盘事件,而Angular在$ event变量中提供一个相应DOM事件对象,该代码将该代码作为参数传递给组件onKey()方法。...减少噪音一种方法是检查每个$ event.keyCode,并且只有当输入是enter时才采取行动。 有一个更简单方法:绑定到Angularkeyup.enter伪事件。...要解决此问题,请同时听取Enter和blur事件。...您可以从元素任何兄弟或子元素引用newHero。 传递值,而不是元素。 取而代之是将newHero传递给组件addHero()方法,获取输入框值并将其传递给addHero()。

    3.5K00

    AngularDart 4.0 高级-结构指令 顶

    三种常见内置结构指令 - NgIf,NgFor和NgSwitch ... - 在模板语法指南中进行了描述,并在整个Angular文档示例中进行了介绍。...该指南在谈论其属性以及指令功能时引用了指令类。 指南在描述如何将指令应用于HTML模板元素时引用了属性(attribute)名称。...Angular在实际渲染过程消耗了内容,并用诊断注释替换了。 NgFor和NgSwitch ...指令遵循相同模式。...您可以在分配给ngFor字符串启用这些功能,这是您在Angularmicrosyntax编写。...Angular设置let-hero为上下文$implicit属性值,NgFor已经用当前迭代hero初始化了它值。 API指南描述了额外NgFor指令属性和上下文属性。

    16.1K20

    AngularDart4.0 指南- 依赖注入 顶

    你知道它来自HeroesComponent。 唯一重要是在某些注入器中提供HeroService。 单实例服务 服务在注入器范围内是单实例。 在给定注射器中最多只有一个服务实例。...然而,Angular DI是一个分层注入系统,这意味着嵌套注入器可以创建自己服务实例。 Angular始终创建嵌套注入器。...)] 第一个Provider构造函数参数是作为定位依赖项值和注册提供者标记。...注入器维护一个内部令牌提供者映射,当它被要求依赖时候它会引用它。 令牌是mapkey。 在之前所有例子,依赖性值都是一个类实例,类类型作为自己查找。...在这个例子Angular将组件注入器注入到组件构造函数。 该组件然后在ngOnInit()向注入注入器询问它想要服务。 请注意,服务本身不会被注入到组件

    5.7K20

    浅谈Angular

    AngularJS 是以一个 JavaScript 文件形式发布,可通过 script 标签添加到网页。...ng-show本质上设置元素display值为none,只是设置样式,DOM结构还在,而*ngIf是真正意义上从DOM结构移除 *ngFor--动态创建DOM结构 ngSwitch--通过匹配case...当前比特币价格是:{{5000.123456 | currency:'JPY':true:'5.1-4'}} 5.Angular里路径值: <!...从Observable中文名:”可观察”就能看出,Observable作用是可以起到类似监听作用,但它监听往往都是在跨页面, 6.组件间通信: 1.向子 -- @Input装饰器声明输入属性...,要声明在子组件里 2.子向 -- @Output装饰器声明事件,要声明在子组件里 3.兄弟之间 -- 中间人模式 拓展:事件源对象 在事件,当前操作那个元素就是事件源。

    4.4K10

    Angular 2 + 折腾记 :(2)初步认识angular2,不一样开发模式

    ---- 基础概念 国内官网--基础 词汇表(又名计算机术语--angular2 & es6 & es7) 速查表:又名demo写法表,里面涵盖了很多写法,相当于一本小字典 关于ng2一堆为什么:...对应国际官网 GLOSSARY CHEAT SHEET NGMODULE FAQS ARCHITECTURE OVERVIEW 英文水平比较好推荐国际官网,这边API更新很及时 ---- angular-cli...'@angular/platform-browser'; // 这也是一个装饰器,用来定义模块和组件相关,比如服务,组件元素,指令,导入导出模块识别 // 每个模块定义必须有这个才能生效...,用来动态判断增加多个样式 [class.a]或者[style.font-size]:单一操作类或者某个行内样式 数据遍历(*ngFor) *ngFor="let i of item; let index...---- 总结 这一篇没有涉及到路由这些和表单这些; 准备拆成两个文章来说; 路由配置及懒加载这些, 模板驱动表单及响应式表单[嵌套表单响应等],回车触发搜索等。。

    6.2K20

    Angular 2.x折腾记 :(2)初步认识angular2,不一样开发模式

    基础概念 官方中文社区一把梭: 你想要都概念基本可以在这里找到。 angular-cli 启动 src是开发目录,生产打包后会产生一个dist目录; 初步说下你从启动到浏览器看到app works!... main.ts // 引入生产模式,控制关闭开发模式,函数来 import { enableProdMode } from '@angular...'@angular/platform-browser'; // 这也是一个装饰器,用来定义模块和组件相关,比如服务,组件元素,指令,导入导出模块识别 // 每个模块定义必须有这个才能生效...[class.a]或者[style.font-size]:单一操作类或者某个行内样式 数据遍历(*ngFor) *ngFor="let i of item; let index = index": 可以用这个来遍历数组对象...总结 这一篇没有涉及到路由这些和表单这些; 准备拆成两个文章来说; 路由配置及懒加载这些, 模板驱动表单及响应式表单[嵌套表单响应等],回车触发搜索等。。

    10510

    Angular 2 架构(下)

    Angular包含以下三种类型指令: 属性指令:以元素属性形式来使用指令。 结构指令:用来改变DOM树结构 组件:作为指令一个重要子类,组件本质上可以看作是一个带有模板指令。... *ngFor 告诉 Angular...---- 服务(Services) Angular2服务是封装了某一特定功能,并且可以通过注入方式供他人使用独立模块。 服务分为很多种,包括:值、函数,以及应用所需特性。...通过控制反转,对象在被创建时候,由一个调控系统内所有对象外界实体,将其所依赖对象引用传递给它。也可以说,依赖被注入到对象。...注入器是一个维护服务实例容器,存放着以前创建实例。 如果容器还没有所请求服务实例,注入器就会创建一个服务实例,并且添加到容器,然后把这个服务返回给 Angular

    2.2K20

    Angular: 最佳实践

    我们知道一个路由对应一个 Angular 组件,但是我推荐你使用容器组件,它将处理数据(如果有数据需要传递的话)并将数据传递给另外一个组件,该组件将使用输入所包含真实视图和 UI 逻辑。...="let user of users" [user]="user"> 复制代码 这在组件写更少代码,让后允许委托任何重复逻辑到子组件。...服务 Services 服务是 Angular 业务逻辑存放和数据处理方案。拥有提供数据访问、数据操作和其他可重用逻辑结构良好服务非常重要。...读者可能意识到我并没有写关于 Directives 和 Pipes 相关内容,那是因为我想写篇详细文章,关于 Angular DOM 是怎么工作。...所以本文着重介绍 Angular 应用 TypeScript 内容。 希望本文能够帮助你编写更干净代码,帮你更好组织你应用结构。

    2.8K40

    angular知识点梳理第三篇-组件

    文章目录 前文回顾 组件介绍 什么是组件 创建一个组件 更改默认启动页内容 组件模块介绍 组件生命周期 组件之间值 父子之间组件值(函数)给子组件 第一步:在parent组件ts文件...:在组件ts文件引入viewchild模块 【parent.component.ts】 方案二:通过@Output触发组件方法 第一步:在子组件ts文件引入angular核心模块output...关系理清了,下面我们开始演示父子组件之间值 当前结构是app引入了parent、parent引入了children 组件值(函数)给子组件 第一步:在parent组件ts文件 声明一个变量...整个组件传递给子组件写法如下: 在组件视图层文件实现this传递 【parent.component.html】 <!...方案二:通过@Output触发组件方法 这个方式就是同归广播方式进行触发函数,将子组件数据主动传递到组件中去 第一步:在子组件ts文件引入angular核心模块output和EventEmitter

    2.2K10

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

    一、Overview angular 入坑记录笔记第二篇,介绍组件相关概念,以及如何在 angular 通过使用组件来完成系统功能实现 对应官方文档地址: 显示数据 模板语法 用户输入 组件之间交互...,再次显示时不用重新进行初始化过程 NgFor:通过定义单条数据显示格式,angular 以此为模板,循环渲染出所有的数据 <p *ngFor="let item of products; let...@Input 用来获取数据,@Output 用来向外发送数据 4.4.2、子组件获取组件信息 在组件,添加对于子组件引用,并将需要传递数据 or 方法绑定到子组件上 传递数据直接将组件属性值赋值给绑定在子组件上属性就可以了...在组件中使用服务 在需要使用组件引入服务,然后在组件构造函数通过依赖注入方式注入这个服务,就可以在组件完成对于这个服务使用 在组件对数据进行赋值,然后调用服务方法改变数据信息...> 在子组件引入服务,从而同步获取到组件修改后服务数据信息 import { Component, OnInit } from '@angular/core'; // 引入服务 import

    15.8K30

    AngularDart4.0 指南- 表单 顶

    禁用窗体提交按钮,直到窗体有效。 建立 按照设置说明创建一个名为表单新项目。 添加angular_forms Angular表单功能位于angular_forms库,该库位于其自己。...hero-form@Component选择器值意味着您可以使用元素将此表单放在模板。 templateUrl属性指向模板HTML单独文件(您将很快创建)。...顺便说一句,您可以注入数据服务来获取和保存真实数据,或者将这些属性作为输入和输出(请参阅“模板语法”页面输入和输出属性)来绑定到组件。 这不是现在问题,这些未来变化不会影响表单。...您将在表单添加一个select,并使用ngFor(先前在“显示数据”页面中看到一种技术)将选项绑定到powers列表。...指令exportAs属性告诉Angular如何将引用变量链接到指令。 您将name设置为“ngForm”,因为ngModel指令exportAs属性是“ngForm”。

    17.5K30

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

    ngFor指令遍历组件英雄列表并为该列表每个英雄呈现该模板一个实例。 表达式部分将hero标识为模板输入变量,其中包含每个迭代英雄详情。...> {{hero.name}} 要在模板中使用Angular指令,需要在组件@Component注解指令参数列出。...这是你在ngFor指令定义同一个英雄变量。 在用户输入页面和模板语法页面的事件绑定部分了解有关事件绑定更多信息。...当用户选择一个英雄时,selectedHero变为非null,ngIf将英雄详细内容放入DOM,并评估嵌套绑定。...在模板,将以下绑定添加到标记: [class.selected]="hero === selectedHero" 当表达式(hero === selectedHero)为true时,Angular

    3K30
    领券