Angular 星级评分组件

一、需求演变及描述:

1. 有一个“客户对公司的总体评价”的字段(evalutation)。字段为枚举类型,0-5,对应关系为:0-暂无评价,1-很差,2-差,3-一般,4-好,5-很好

2. 后来需要根据评分使用星星来表现,一共5颗星,分为实星和空星,例如,当3分时,三颗星星被点亮,即3颗实星2颗空星。

二、开发前准备:

1. 用于描述星星的图标,也可以是图片,我这里使用 iconfont

 

2. 新建一个星级评分组件,便于复用

通过命令 ng g component rating 我新建了一个星级评分组件

三、从父组件中获取“客户对公司的总体评价”的字段的值

通常控制星星显示的 evalutation 值都是一个从父组件传递出去的Number类型值。 
1、首先我们需要在调用星级组件的父组件模板中将值传递出去:

<li class="companyevalutation">客户对公司的总体评价:<app-rating [starsRating]="repairs.evalutation"></app-rating>
</li>

说明:app-rating 是新建的星级评分组件,使用 starsRating 属性绑定 evalutation 的值

2、星级组件为了获得这个值,需要使用输入属性 @Input() 
在星星组件的控制器(rating.component.ts)中写这样一段代码

@Input()private starsRating: number = 0;

说明:@input 用来定义模块的输入,用于从父组件向子组件传递数据

在这里可以将 starsRating 的值传递出去。

三、显示实星和空星

1. 显示5颗实星

要显示5颗实星可以这样做:

<span class="iconfont icon-start_c"></span>
<span class="iconfont icon-start_c"></span>
<span class="iconfont icon-start_c"></span>
<span class="iconfont icon-start_c"></span>
<span class="iconfont icon-start_c"></span>

但是这样的做法未免太过暴力,假如要显示100颗星,岂不是要写100行同样的代码。

显示5颗实星,可以使用 angular 的循环

<span *ngFor="let star of stars;" class="iconfont icon-start_c"></span>

同时在控制器里面,定义 stars 的值:

stars: boolean[];constructor() { }ngOnInit() {this.stars = [true, true, true, true, true];
}

这样就得到了5颗实心的星星。

star 的值为 true 时,添加 icon-start_n 类,显示空星。

<span *ngFor="let star of stars;" class="rating iconfont icon-start_c" [class.icon-start_n]="star"></span>

获取实际的星星个数:

get starsRating(): number {return this._starsRating;
}@Input() set starsRating(value: number){this._starsRating = value;this.rating();
}

stars 为布尔型的数组,值为 false 将会显示实星,值为 true 将会显示空星。

public rating(): void {this.stars = [];for (let i = 1; i <= 5; i++){this.stars.push(i > this.starsRating);}
}

如果 starRating 的值为 3,stars = [false, false, false, true, true]; 视图显示三颗实星,两颗空星

四、源码:

rating.component.html:

<span *ngFor="let star of stars;" class="rating iconfont icon-start_c" [class.icon-start_n]="star"></span>

rating.component.ts:

import {Component, Input, OnInit} from '@angular/core';@Component({selector: 'app-rating',templateUrl: './rating.component.html'
})
export class RatingComponent implements OnInit {public _starsRating: number = 0;public stars: boolean[];get starsRating(): number {return this._starsRating;}@Input() set starsRating(value: number){this._starsRating = value;this.rating();}constructor() { }ngOnInit() {this.rating();}public rating(): void {this.stars = [];for (let i = 1; i <= 5; i++){this.stars.push(i > this.starsRating);}}}

 

转载于:https://www.cnblogs.com/xinjie-just/p/8854795.html

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

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

相关文章

计算机网络怎么查看连接打印机驱动,如何检测网络打印机是否已成功连接到计算机[检测方法]...

大概很多婴儿都像以前的编辑一样. 使用网络打印机时&#xff0c;有时它们可​​以打印打印机没有和电脑连接&#xff0c;有时却不能. 那么如何检测网络打印机是否已成功连接到计算机&#xff1f;跟随编辑器往下看.系统反复提示“无法打印”&#xff0c;因此本来很忙的小修几乎快…

a - 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历_数据结构--图

故事凌 今天基本知识点图可说是所有数据结构里面知识点最丰富的一个, 自己笨的知识点如下:阶(oRDER), 度: 出度(out-Degree), 入度(in-Degree)树(Tree), 森林(Forest), 环(Loop)有向图(Directed Graph), 无向图(Undirected Graph), 完全有向图, 完全无向图连通图(Connected Gra…

vim: vimrc

2019独角兽企业重金招聘Python工程师标准>>> 打造vim CIDE http://blog.csdn.net/doc_sgl/article/details/47205779 转载于:https://my.oschina.net/u/2528742/blog/843176

计算机二级考试试题在线看,【TOP182015年全国计算机二级考试试题题库.doc文档免费在线阅读材料】...

TOP182015年全国计算机二级考试试题题库.doc文档免费在线阅读《2015年全国计算机二级考试试题题库.doc》由会员分享&#xff0c;可免费在线阅读全文&#xff0c;更多与《TOP182015年全国计算机二级考试试题题库.doc文档免费在线阅读》相关文档资源请在帮帮文库(www.woc88.com)数…

不用开发实现RDS RDWeb门户美化和个性化

个性化RDWeb界面RDWeb原生界面相对比较简洁&#xff0c;每个企业部署的RDWeb都是千篇一律的&#xff0c;有些用户可能希望将网页装饰得个性化点。在谈到自定义Web界面&#xff0c;第一反应可能是使用代码进行编写&#xff0c;但是这里要和大家分享的是无代码美化和自定义RDWeb界…

其他大神的配置 nginx 配置参考

2019独角兽企业重金招聘Python工程师标准>>> user nginx nginx; worker_processes 2; #error_log logs/error.log; error_log logs/error.log notice; #error_log logs/error.log info; pid logs/nginx.pid; google_perftools_profiles /tmp/tcmalloc; worker_rlim…

小孩用计算机做作业怎么表达,计算机作业

满意答案尧Dreaman夕2014.09.25采纳率&#xff1a;40% 等级&#xff1a;10已帮助&#xff1a;1121人Windows中可以设置、控制计算机硬件配置和修改桌面布局的应用程序是( D)A) Word B) Excel C)资源管理器 D)控制面板多窗口的切换可以通过(D )来实现A)在任务栏上用鼠标单击右…

[No0000178]改善C#程序的建议1:非用ICloneable不可的理由

好吧&#xff0c;我承认&#xff0c;这是一个反标题&#xff0c;实际的情况是&#xff1a;我找不到一个非用ICloneable不可的理由。事实上&#xff0c;接口ICloneable还会带来误解&#xff0c;因为它只有一个Clone方法。 我们都知道&#xff0c;对象的拷贝分为&#xff1a;浅拷…

SOM 的两种算法

我参考了这篇文章http://www.scholarpedia.org/article/Kohonen_network另一个很好的演示在这里http://www.math.le.ac.uk/people/ag153/homepage/PCA_SOM/PCA_SOM.htmlSOMt是训练步一个输入数据是n维向量待训练的是一堆节点&#xff0c;这堆节点之间有边连着&#xff0c;通常是…

秒懂,Java 注解 (Annotation)你可以这样学

转自: https://blog.csdn.net/briblue/article/details/73824058 文章开头先引入一处图片。 这处图片引自老罗的博客。为了避免不必要的麻烦&#xff0c;首先声明我个人比较尊敬老罗的。至于为什么放这张图&#xff0c;自然是为本篇博文服务&#xff0c;接下来我自会说明。好了…

Java技术中的三大特性

为什么80%的码农都做不了架构师&#xff1f;>>> 1&#xff0e;虚拟机 Java虚拟机JVM&#xff08;Java Virtual Machine&#xff09;在Java编程里面具有非常重要的地位&#xff0c;约相当…

matlab图像增强分段线性函数_图像增强、锐化,利用 PythonOpenCV 来实现 4 种方法!...

图像增强目的使得模糊图片变得更加清晰、图片模糊的原因是因为像素灰度差值变化不大&#xff0c;图片各区域产生视觉效果似乎都是一样的&#xff0c; 没有较为突出的地方&#xff0c;看起来不清晰的感觉解决这个问题的最直接简单办法&#xff0c;放大像素灰度值差值、使图像中的…

计算机考研保护一志愿,考研良心大学,保护一志愿的考研名校!

大家好&#xff0c;我是&#xff0c;今天胖胖要跟大家送一些重要的干货&#xff0c;就是对于选学校的小伙伴来说也好&#xff0c;或者是即将要参加研究生复试的小伙伴们来好胖胖在这里要跟大家说一个关于考研白名单的事情&#xff0c;因为大家都知道考研是会分黑名单和白名单&a…

华为备份历史版本_华为手机NAS备份时提示“需处于同一局域网”的解决方法

本内容来源于什么值得买APP&#xff0c;观点仅代表作者本人 &#xff5c;作者&#xff1a;噩梦飘雷创作立场声明&#xff1a;在使用华为手机向群晖NAS中备份时发现一直无法成功&#xff0c;经过一番研究找到了解决方案&#xff0c;希望能帮到大家~前言最近看了一位老哥的帖子&a…

【原创】自己编写的JavaGUI一键生成(hibernate/spring/mvc/maven)工具(附带视频教程源码)...

为什么80%的码农都做不了架构师&#xff1f;>>> 带项目源码&#xff08;https://git.oschina.net/qsyan/GeneratorFx&#xff09; app下载地址(附带视频教程)&#xff1a;http://download.csdn.net/detail/juyan2008/9769406 注明&#xff1a;此应用采用javafx编写…

普通计算机怎么算根号_大学专业介绍 | 计算机专业的真实就业情况

前两天给大家简单介绍了近些年比较火的计算机类相关专业具体都有哪些不同&#xff0c;以及就业时的行业或者岗位的侧重点。今天呢我们继续这个话题&#xff0c;来聊一聊整个计算机相关专业在学习和就业过程中大概是什么样子的&#xff0c;希望能够给大家提供一些实实在在的参考…

设计模式总结篇系列:工厂方法模式(Factory Method)

工厂方法模式适合于对实现了同一接口或继承了同一父类的一些类进行实例的创建。一般是通过定义一个工厂类&#xff0c;并在其方法中实现对具有上述特点的类对象的创建。 根据具体产生类对象的方法定义形式&#xff0c;又可以将其分为普通工厂方法模式、多个工厂方法模式和静态工…

高新园区到大连计算机学校,大连高新区中心小学

大连市高新区中心小学简介&#xff1a;大连市高新区中心小学始建于2009年9月&#xff0c;是大连高新技术产业园区筹建的第一所直属公办学校。学校现拥有2000多名学生&#xff0c;87名教职员工。学校确定了“办诗韵教育&#xff0c;让每个孩子都幸福的教育理念”&#xff0c;通过…

0限流电阻 stm32_上/下拉电阻

除了前一节讨论的拉电阻基本使用方法外&#xff0c;上拉电阻也可以提升高电平的电压阈值&#xff0c;以便于前后级信号相匹配&#xff0c;比如&#xff0c;TTL逻辑电平驱动CMOS逻辑电平时&#xff0c;我们通常会添加一个上拉电阻R1&#xff0c;如下图所示&#xff1a;But Why&a…

网段和子网的区别_电焊石笼网与普通石笼网区别

对于石笼网&#xff0c;每个人都会想到在河中&#xff0c;桥梁附近和大坝上充满石头的笼子结构。今天&#xff0c;我们谈论的是石笼网的一种电焊石笼网&#xff0c;它也是一种常见的石笼网&#xff0c;也被称为六边形石笼网。其功能与石笼网相同&#xff0c;但用法与普通石笼网…