ng-zorro select Multiple selection 一行展示

问题:

ng-zorro 的多项选择组件,选完选项之后不要换行展示,不换行,超出隐藏或者可滚动。这个问题的关键点在于:

各个选项数据字符串长度不确定,不能够准确知道当前容器最大能够渲染多少个选项,故nzMaxTagCount不适用。

解决思路:

1.访问官网,进入stackblitz(官方提供的最小demo项目),复现问题。

2.去看看ng-zorro的源码,看看传nzMaxTagCount是怎么实现的一行展示,结果发现源码是从数据角度进行处理的,如果当前选中的选项大于设置的nzMaxTagCount的数量,就在数据上进行处理。

 这里也暗示着如果想从数据上改这个地方,是需要费很大力气的,实现是可以实现,就是要获取当前选中选项的宽度,跟容器宽度进行比较,计算出最多能够展示多少个选项,再把这个值作为nzMaxTagCount传给nz-select组件,很明显,这种解法对这个需求来说没有必要,于是就要从样式入手。 

2.开始分析HTML结构,看样式定义,找到问题点,flex布局下定义了flex-wrap:wrap,指定了flex是多行显示的,导致换行。

3.到这一步解法就很明朗了,只需要把flex-wrap属性值改为nowrap就可以指定单行显示了。因为这个CSS类是ng-zorro里的,这里需要涉及一个样式隔离问题,具体看文档,文档解释了angular的样式隔离原理,并非基于原生的shadow DOM的隔离机制,angular的样式隔离机制是在运行时给每一层添加目标隔离属性来实现的,因为原生的shadow DOM隔离机制目前只在Chrome和Opera浏览器可用。文章还介绍了:host,:host-context,::ng-deep的用法和适用场景。

4.最后一步就是在这个最小demo上去调试代码,实现需求。

最终需要添加代码(添加到当前组件的样式文件里或者项目style.scss文件里(如需要))如下:

:host{.ant-select-multiple .ant-select-selector{flex-wrap: nowrap;overflow: auto;}}

 

总结:

做开发的本质是解决问题,所以解决问题要有方法,有的时候一个小问题能够花费很多人几个小时甚至几天都解决不了,要懂得分解问题,合理尝试,尝试前方向要明确,如果自己实在解决不了,可以咨询更有相关经验的人,别人指点一下,可能是就知道自己的弱点在哪里,之后要重点补齐。我相信这个问题包括上述代码有很多人尝试过,但是就是由于缺乏一个Angular中“样式隔离”相关知识的掌握,导致没想到可以加一个:host就解决了问题。基础还是很重要,加强基础,巩固知识。勿待忙时,披刀磨砺;闲时雕琢,事势犹利。共勉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/1025.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微服务如何治理

微服务远程调用可能有如下问题: 注册中心宕机; 服务提供者B有节点宕机; 服务消费者A和注册中心之间的网络不通; 服务提供者B和注册中心之间的网络不通; 服务消费者A和服务提供者B之间的网络不通; 服务提供者…

【人工智能】人工智能和双曲几何

一、说明 作为人工智能技术的理论支撑,几何学是必不可少的;目前直接的几何技术有:计算几何--对集合体如点云处理有用;射影几何--对3d重构有用;双曲几何--在自然语言的词嵌入做基础数学模型,另外深度学习国外有双曲网络在应用。本文针对双曲几何进行探讨。 二、各种几何的…

Oracle-抢购活动出现交易耗时飙高案例

问题背景: 接用户保障,他们的核心交易库在理财抢购活动期间出现交易耗时飙高的问题,交易耗时从原来的130毫秒飙高到1秒以上,请求分析交易耗时飙高原因。 问题分析: 通过应用的后台日志记录,发现交易耗时飙高的主要在于…

Unity | HDRP高清渲染管线学习笔记:Lightmapping(光照烘焙)与Lightmap(光照贴图)

目录 相关概念 1.渐进式光照贴图烘焙 1.1 渐进式光照贴图烘焙对模型的要求 1.2 渐进式光照贴图烘焙对硬件的要求 1.3 渐进式光照贴图烘焙支持的Unity渲染管线 1.4 进行渐进式光照贴图烘焙结果 1.5 渐进式光照贴图烘焙的CPU版本和GPU版本 1.6 Lighting窗口Lightmapping …

Elasticsearch介绍与应用

Elasticsearch介绍与应用 Elasticsearch的官方文档。 Elasticsearch官网参考文档:https://www.elastic.co/guide/index.html Elasticsearch官方下载地址:https://www.elastic.co/cn/downloads/elasticsearch mvnrepository依赖库地址:http…

数据结构--顺序栈的实现

数据结构–顺序栈的实现 顺序栈的定义 顺序栈的定义代码实现 #define MaxSize 10 typedef struct {ElemType data[MaxSize]; //静态数组存放栈中元素int top; //栈顶指针 } SqStack;int main() {SqStack S; //声明一个顺序栈(分配空间)//... ...return 0; }一些常见操作 初始…

机器视觉初步8:特征提取专题

文章目录 1.角点检测2.纹理特征提取3.特征描述符匹配3.1 Harris角点描述符3.2 SIFT(尺度不变特征变换)描述符3.3 SURF(加速稳健特征)描述符 4.基于深度学习的特征提取 在机器视觉中,特征提取是从目标图像中提取有用的视…

linux - spin lock实现分析

linux - spin lock实现分析 spinlock1 spinlock的数据结构2 spinlock的接口2.1 spin_lock_init2.2 spin_lock2.3 spin_unlock2.4 spin_lock_irq2.5 spin_unlock_irq2.6 spin_lock_irqsave2.7 spin_unlock_irqrestore2.8 spin_lock_bh2.9 spin_unlock_bh spinlock 1 spinlock的数…

我心中的TOP1编程语言—JavaScript

作为一名研发工程师(程序员),平时工作中肯定会接触或了解很多编程语言。每个人都会有自己工作中常用的语言,也会有偏爱的一些编程语言。而我心中的最爱,毫无疑问,就是 JavaScript。 JavaScript 是一门编程…

华为MateBook 16 2021款锐龙版R7(CREM-WFD9)(CREM-WFG9)原装出厂Win11系统工厂模式,恢复原厂系统

HUAWEI华为笔记本电脑,MateBook 16 2021款 锐龙版 R7(CREM-WFD9) (CREM-WFG9) 原厂Windows11系统,带F10恢复功能,原装OEM专用系统,恢复出厂状态 系统自带所有驱动、出厂主题壁纸LOGO、Office办公软件、华为电脑管家等预装程序 …

记录--不定高度展开收起动画 css/js 实现

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 不定高度展开收起动画 最近在做需求的时候,遇见了元素高度展开收起的动画需求,一开始是想到了使用 transition: all .3s; 来做动画效果,在固定高度的情况下&#xf…

【嵌入式模型转换】2. 算能盒子SE5 芯片板子BM1684 sophon-pipeline

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言1. 开始安装 前言 文章1,我们在SE5上实现了,SOC模式下的 C 和 python-sail的模型转换,文章连接: 【嵌入式模型转…