ngzorro html源码,Angular 中 ngTemplateOutlet 的用法以及ng-zorro源码分析!

本文深入探讨Angular中的ngTemplateOutlet用法,通过实例讲解如何在子组件中插入和传递上下文数据。同时,分析ng-zorro框架中对TemplateRef的支持,特别是nz-string-template-outlet指令的实现原理,以及它如何处理字符串和模板引用的变化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、引言

今天看到文章:https://segmentfault.com/a/1190000015944548 。于是专门研究一下ngTemplateOutlet用法!!!!

官方定义 :

NgTemplateOutlet: 它是结构指令,根据一个提前备好的插入一个内嵌视图。 你可以通过设置来给附加一个上下文对象。是一个对象,该对象的 key 可在模板中使用let语句进行绑定。

示例: 

*我测试:  都可承载这个指令, 但不支持

这样的标签,提示:

cd28e49737c008cbc8903a4c44e8a233.png

使用目的

需要要自定义标题或页脚的内容。

比如编写弹窗组件,不建议在组件模板中写死标题和页脚的内容,当在页面上使用该组件时, 页面可以动态向指定组件内占位传入“一些内容”,组件会把它们插入到它想要的地方!

比如ng-zorro中,也大量这样用法,https://ng.ant.design/components/card/zh#components-card-demo-simple

1b9e5ad3930c59cc1123af96d35fda65.png

3ed11e0553e18bd8c9cccdb4da7316ce.png

二、组件自定义输入内容

比如在一个页面上,引用nz-card时,把主页面上内容插入到nz-card中去,文档上示例代码:

3ed11e0553e18bd8c9cccdb4da7316ce.png

如果要编写这样的组件,需要考虑几个问题,

1、如何引用主页面上的一个模板元素   ( 使用本地变量 #,我记得以前官方文档叫“局部模版变量"或“模板引用变量”)

2、引用的变量如何传递给子组件中      (子组件定义@Input  ,使用类型为TemplateRef的变量接收)

3、子组件如何使用这个引用变量          ( 在模版中,用ngTemplateOutlet  绑定这个变量即可)

4、引用的模板元素从主页面上来,  如何把子组件的数据(即子组件中上下文)传递给这个引用元素上来?(向ngTemplateOutlet 传入 context: myCo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值