个人觉得primeng提供了很多比较好看的组件,包括输入框input、表格table、按钮button、交互框dialog等等,样式要比angular material好看一些,也比较好上手,官网提供了很多示例代码以及参数的使用说明。

但是某些组件的元素样式说明可能没有很直接,所以想开这篇文章,介绍一下我在使用其中一些组件时遇到的问题,以及对应的解决方案,包括一些内部元素的css设置。

multiselect / multi-select

options绑定的变量发生变化

虽然官网文档中options中可以传入selectedItem类变量,也可以传入自定义的类变量,但是只有使用selectedItem时才能检测到变量在其他地方的更新。

选择项获取: 判断选中项的变化

可以通过ngModel进行双向绑定,也可以通过$event.value获得当前被选择的item list。

如何判断何时选中项发生了变化以及变化了什么: onChange能够检测变化,只要选中项发生变化就会触发onChange。这样绑定一个操作(onChange)=”changeOperation($event)”就可以在有变化时进行函数调用,$event.value获得当前所有被选择的item_list,\$event.itemValue可以获得当前操作 (选中或者取消选中) 的item,通过item_list.includes(item)就可以判断当前操作到底是选中操作还是取消操作。

数据item list样式设置

例如:原本默认下拉框中展示的是string字符串,options中提供所有可选列表,那如果我们想根据options中的数据重新设计一些样式,例如调整颜色等,可以使用ng-template指定pTemplate=”item”,即可对每个option进行样式设计,如:

<p-multiSelect defaultLabel="Tags" [dropdownIcon]="dropDownIcon" class="multiselect" [options]="items" [(ngModel)]="selectedItems" name="selectedItems" maxSelectedLabels=0 [panelStyle]="{minWidth:'12em'}" scrollHeight="100px"><ng-template let-item  pTemplate="item"><span style="color:#e78d75">{{item.label}}</span></ng-template>
</p-multiSelect>

上面的代码中还有一些比较有用的参数:

  • defaultLabel: 没有任何item选中时多选框中显示的文字
  • dropdownIcon: 下拉按钮的icon显示,可以自己使用string变量定义,例如使用fontawesome中的图片
  • maxSelectedLabels: 数值设置,当选中的item个数大于这个值时,多选框中就显示”x items selected”,小于等于这个值时会将选中的item label展示在多选框中。如果想要一有item被选中就开始显示”1 items selected”,这个数值应该设置为0
  • scrollHeight:用于设置下拉框高度大于多少时开始使用scroll bar,如果不设置则默认一直展示全量的列表
局部css设置
  • 设置下拉框面板背景色为白色而不是透明
.ui-multiselect-panel .ui-multiselect-items-wrapper{background: white !important;
}
  • 设置多选框宽度、高度、和其他组件齐平、边框
.ui-multiselect {width: 120px !important;height: 22px !important;display: inline-flex !important;background: white !important;border: ridge 1px lightgray !important;
}
  • 设置多选框背景为白色,而不是透明色
.ui-multiselect ui-state-default{background: white !important;
}
  • 设置下拉按钮的背景色:默认为透明色,如果想要和显示框一样为白色,可以设置为
.ui-multiselect-trigger{background: white !important;
}

accordion

点击某个tab时触发数据请求
<p-accordion (onOpen)="getDataByIndex($event.index)">
</p-accordion>

使用onOpen可以触发这个事件来调用对应的函数,函数中可以传入参数$event.index,通过参数可以知晓这是折叠项中的第几个。

设置折叠栏上的显示

简单情况下,通过

<p-accordion header={{headerName}}>
</p-accordion>

可以将某个string变量设置为折叠栏的头部显示,但有时候我们需要添加更多的信息,有可能不只是字符串那么简单,这时我们可以使用p-header进行操作

<p-accordionTab *ngFor="let businessRuleName of businessRuleGroup.bsnsNameList"><p-header><!--you can add anything if you want-->{{headerName}}<button....></button></p-header>
</p-accordionTab>
可变的折叠栏数目

最简单的accordion使用方法为

<p-accordion><p-accordionTab header="Header 1">Content 1</p-accordionTab><p-accordionTab header="Header 2">Content 2</p-accordionTab><p-accordionTab header="Header 3">Content 3    </p-accordionTab>
</p-accordion>

但是很多时候我们需要动态控制其中的内容,这时我们就要使用ngFor的功能

<p-accordion><p-accordionTab *ngFor="let item of items" header={{item.header}}>item.content</p-accordionTab>
</p-accordion>

notice: 注意这里的for循环需要放在p-accordionTab层级,而不是p-accordion层级。这是我犯的一个错误,这就造成点开一个折叠项时本来展开的折叠项不会自动收缩。原因就是,把for循环放在p-accordion会造成其实开了很多个accordion项,而每个项中只有一个折叠项,也就是说每个项之间相互独立。

turbo table / p-table

获取操作对应的行号
let-rowIndex="rowIndex"

input

将输入框改为圆角
border-radius:3px;
-moz-border-radius:3px;
-webkit-border-radius:3px;

Primeng中一些组件的格式调整以及css设置相关推荐

  1. 仿Word自动套用格式,用CSS设置表格样式

    找一个虽然不是很好看,但设置起来比较复杂的吧:彩色底纹-强调文字颜色6 Word中的效果如图示: [样式分析]: Word中设置表格格式,主要是设置边框和底纹,可选定整个表格或者部分单元格右击→表格属 ...

  2. word套用表格样式怎么设置_仿Word自动套用格式,用CSS设置表格样式

    找一个虽然不是很好看,但设置起来比较复杂的吧:彩色底纹-强调文字颜色6 Word中的效果如图示: [样式分析]: Word中设置表格格式,主要是设置边框和底纹,可选定整个表格或者部分单元格右击→表格属 ...

  3. html中一张a4是多少pt,CSS设置A4纸张尺寸

    我需要在网络上模拟A4纸,并允许打印此页面,因为它在浏览器上显示(特别是Chrome).我设置元素的大小为21厘米x 29.7厘米,但当我发送打印(或打印预览)它剪辑我的页面. HTML Page 1 ...

  4. 在HTML中让边框变透明,如何用CSS设置DIV边框透明

    如何实现用CSS设置DIV边框为透明呢?我们来看一看. 工具/材料 电脑 操作方法 01 透明一般认为是一种颜色属性,但是并没有这个数值.我们找到了一种让div实现透明的最佳方案,运用RGBA 02 ...

  5. SAP中BOM事务清单CS13中的物料数量单位逻辑梳理及格式调整处理实例

    CO同事提出使用事务CS13输出BOM清单时,存在结果中单位数量与CS03中不符的情况.经分析,这样的问题通常清单中单位数量的字段输出不全,导致没有建立不同单位数量的对应关系,造成误解的原因.于是,通 ...

  6. SAP中通过格式调整解决导出EXCEL表字段显示不全问题

    如题,近期应用户需求导了个表,用FBL3N输出某个总账科目在某个期间项目明细.没仔细检查,后来发现导出的EXCEL中数据不完整,没法使用.在重导时通过格式调整来解决了问题.见下图对比. 调整方法如下图 ...

  7. planetb word中格式调整

    http://www.planetb.ca/syntax-highlight-word word中代码块格式调整

  8. 杂学第十篇:这几天,在毕业论文调整格式中踩过的坑,满满的干货助你快速解决格式调整的烦恼

    以下内容,来自我的公众号. 你是来看论文格式,还是来看我奄奄一息的爱情?? 这几天,为了我的论文,殚精竭虑.历经生死.悲欢离合.甚至错了一个重要的节日,真是赔了夫人还好没折兵.看来我要多哄哄我家那美若 ...

  9. elementui中组件el-dialog宽度调整方法

    参考链接: 1. vue中对el-dialog宽度调整方法之一二 2. elementui中组件el-dialog宽度调整方法

最新文章

  1. CPU Cache原理与示例
  2. Java知多少(中)
  3. 详解SQL中的触发器
  4. stl-vector详解
  5. ICCV 2019 | Lifelong GAN:基于持续学习的条件图像生成模型
  6. C# COM ArcgisEngine 多线程相关
  7. 面向对象类的使用(15)
  8. Android获取设备隐私 忽略6.0权限管理
  9. 每天CookBook之Python-047
  10. 解决数据库不能更新或数据库或对象为只读
  11. matlab中的插值函数
  12. 关于城市旅游的HTML网页设计——中国旅游HTML+CSS+JavaScript 出游旅游主题度假酒店 计划出行网站设计
  13. ubuntu装指定分区_Ubuntu安装过程中如何手动指定分区
  14. 卓有成效的管理者(珍藏版) (德鲁克管理经典)
  15. SQL注入-04-(最后有实战教学)关系注入逻辑注入
  16. 午夜与element-ui邂逅
  17. 关于大成资源网这一个月大成网停更详细原因
  18. 冯诺依曼结构 与 哈佛结构
  19. 彻底对一个男人失望的瞬间
  20. 15k运维面试题带答案分享

热门文章

  1. 【Codeforces Round #185 (Div. 2) D】Cats Transport
  2. ResNet残差网络——Deep Residual Learning for image recongnition
  3. HTTP协议--概述
  4. jqgrid 列排序
  5. 虚拟机安装CentOs系统
  6. 学会感谢--谈辞职信的写法
  7. Bibexcel 与 Pajek 基本分析
  8. 关于公共IP地址(公网ip):您需要知道的一切
  9. 淘宝首页交互5--选项卡
  10. 帝国cms系统7.5 文档word