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.pswp.cn/news/396688.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/396688.shtml
英文地址,請注明出處:http://en.pswp.cn/news/396688.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機網絡怎么查看連接打印機驅動,如何檢測網絡打印機是否已成功連接到計算機[檢測方法]...

大概很多嬰兒都像以前的編輯一樣. 使用網絡打印機時&#xff0c;有時它們可??以打印打印機沒有和電腦連接&#xff0c;有時卻不能. 那么如何檢測網絡打印機是否已成功連接到計算機&#xff1f;跟隨編輯器往下看.系統反復提示“無法打印”&#xff0c;因此本來很忙的小修幾乎快…

eclipse python插件_pydev插件下載-eclipse中的python插件下載6.0.0 官網最新版-西西軟件下載...

在eclipse中安裝python所需的插件。PyDev for Eclipse 是一個功能強大且易用的 Eclipse Python IDE 插件。利用 PyDev 插件把 Eclipse 變為功能強大且易用的 Python IDE&#xff0c;如何利用其進行 Python 程序的開發和調試。安裝方法&#xff1a;一種比較隨意的方法就是把壓縮…

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)數…

使用flask_socketio實現客戶端間即時通信

關于flask_socketio的入門可以看我的上一篇博客《使用flask_socketio實現服務端向客戶端定時推送》 用socketio實現即時通信十分簡單&#xff0c;只需要客戶端發送用戶輸入的信息到后端&#xff0c;后端再將此信息廣播到所有連接到此命名域的客戶端就可以了。 from flask impor…

java繼承原理內存角度_Java基礎知識鞏固

最近發現自己的Java基礎知識還是有點薄弱&#xff0c;剛好有點空閑時間進行再補一補&#xff0c;然后進行整理一下&#xff0c;方便自己以后復習。其實個人認為Java基礎還是很重要的&#xff0c;不管從事Java后端開發還是Android開發&#xff0c;Java這塊的基礎還是重中之重&am…

python函數對變量的作用_python函數對變量的作用及遵循的原則

1.全局變量和局部變量全局變量&#xff1a;指在函數之外定義的變量&#xff0c;一般沒有縮進&#xff0c;在程序執行的全過程有效局部變量&#xff1a;指在函數內部使用的變量&#xff0c;僅在函數內部有效&#xff0c;當函數退出時變量將不存在例如&#xff1a;1 n1 #n是全局變…

不用開發實現RDS RDWeb門戶美化和個性化

個性化RDWeb界面RDWeb原生界面相對比較簡潔&#xff0c;每個企業部署的RDWeb都是千篇一律的&#xff0c;有些用戶可能希望將網頁裝飾得個性化點。在談到自定義Web界面&#xff0c;第一反應可能是使用代碼進行編寫&#xff0c;但是這里要和大家分享的是無代碼美化和自定義RDWeb界…

安卓使用富文本編輯器html5,Android富文本編輯器,圖文詳細

Android富文本編輯器,圖文詳細資源下載此資源下載價格為3D幣&#xff0c;請先登錄資源文件列表AndroidRichTextEditor/.classpath , 475AndroidRichTextEditor/.project , 857AndroidRichTextEditor/AndroidManifest.xml , 1281AndroidRichTextEditor/bin/AndroidManifest.xml …

python pip安裝pyinstaller報錯_pip install pyinstaller (安裝過程報錯解決)

安裝目標&#xff1a;pip install pyinstaller報錯內容&#xff1a;WARNING: You are using pip version 19.2.3, however version 20.0.2 is available.You should consider upgrading via the python -m pip install --upgrade pip command.解決方法&#xff1a;運行--->c…

[SQL]LeetCode183. 從不訂購的客戶 | Customers Who Never Order

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★?微信公眾號&#xff1a;山青詠芝&#xff08;shanqingyongzhi&#xff09;?博客園地址&#xff1a;山青詠芝&#xff08;https://www.cnblogs.com/strengthen/&#xff09;?GitHub地址&a…

access四舍五入取整round_access中round函數怎么用

access中round函數怎么用?access中round函數的用法&#xff01;下面&#xff0c;小編通過示例來給大家介紹access中round函數的用法。工具/原料access 2007方法/步驟打開access應用程序&#xff0c;新建一個數據庫&#xff0c;并新建如下圖所示的worker數據表&#xff0c;用于…

其他大神的配置 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)在任務欄上用鼠標單擊右…

Delphi讀寫二進制文件

http://www.cnblogs.com/hnxxcxg/p/3691742.html 二進制文件&#xff08;也叫類型文件&#xff09;&#xff0c;二進制文件是由一批同一類型的數據組成的一個數據序列&#xff0c;就是說一個具體的二進制文件只能存放同一種類型的數據。type TMember record Name : string[10]…

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

好吧&#xff0c;我承認&#xff0c;這是一個反標題&#xff0c;實際的情況是&#xff1a;我找不到一個非用ICloneable不可的理由。事實上&#xff0c;接口ICloneable還會帶來誤解&#xff0c;因為它只有一個Clone方法。 我們都知道&#xff0c;對象的拷貝分為&#xff1a;淺拷…

uniapp網絡請求獲取數據_2.uni-app 發起網絡請求

## uni.request(OBJECT)發起網絡請求。**OBJECT 參數說明**![](https://box.kancloud.cn/a90bf284df069eddde4019c04db7d627_861x475.png)**success 返回參數說明**![](https://box.kancloud.cn/10d44a6d100bb3833b22f2d41e85d8eb_861x165.png)**data 數據說明**最終發送給服務…

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;通常是…

python集合的兩種類型_python 入門之 – 集合類型(十九)

在python中&#xff0c;集合是一個無序的&#xff0c;不重復的數據組合&#xff0c;他的主要工作如下&#xff1a;1、去重&#xff0c;把一個列表變成集合&#xff0c;就自動去重了2、關系測試&#xff0c;測試兩組數據之間的交集、差集、并集等關系我來舉個例子&#xff0c;前…