Les évaluations sont utilisées partout aujourd'hui. Apprenez à créer un composant d'évaluation personnalisé avec Kendo UI Builder, le concepteur d'applications Angular à faible code.
Les composants de classement par étoiles sont très populaires ces jours-ci, que ce soit pour montrer à quel point un restaurant est cher. Voici un exemple visuel:
- Icône à afficher (après tout, nous aimerions réutiliser le même composant pour afficher un classement par étoiles ou un classement en dollars)
- Couleur de l'icône
- Taille de l'icône
- Espacement entre les icônes
Pour suivre, téléchargez l'exemple de fichier zip depuis github ou clonez le référentiel, ouvrez le dossier templates / components / custom-rating-comp -v1 / et suivez les instructions décrites dans ce post pour installer ce modèle dans votre application cible.L'échantillon est spécifique au cadre Angular.
Comme d'habitude, nous allons regarder comment le composant est défini (le fichier de définition du composant), comment il est rendu au moment du design et enfin comment le
Définition du composant
Ouvrir les composants du fichier / custom-rating-comp / custom-rating-comp.json
Il contient des propriétés similaires à celles de l'échantillon de base, donc ceux-ci devraient vous être familiers. Si ce n'est pas le cas, veuillez vous référer à ce blog .
Les nouvelles propriétés qui nous intéressent sont:
01.
"icon"
: {
02.
"type"
:
"chaîne de caractères"
03.
"titre"
:
"Icône"
04.
"editorType"
:
"icône"
05.
"editorRowType"
:
"fenêtre"
06.
"par défaut"
:
"fa fa-star"
07.
"ordre"
: 2
08.
},
09.
"couleur"
: {
10.
"type"
:
"chaîne de caractères"
11.
"titre"
:
"Couleur de l'icône"
12.
"description"
:
"Couleur de l'icône"
13.
"editorType"
:
"couleur"
14.
"par défaut"
:
"bleu"
15.
"ordre"
: 3
16.
},
17.
"espacement"
: {
18.
"type"
:
"entier"
19.
"titre"
:
"Espace entre les icônes (px)"
20.
"minimum"
: 0,
21.
"description"
:
"Espace entre les icônes"
22.
"par défaut"
: 3,
23.
"ordre"
: 4
24.
},
25.
"hauteur"
: {
26.
"type"
:
"entier"
27.
"titre"
:
"Taille des icônes (px)"
28.
"minimum"
: 7,
29.
"description"
:
"Quelle sera la hauteur et la largeur des icônes"
30.
"par défaut"
: 12,
31.
"ordre"
: 5
32.
}
Ceux-ci sont auto-descriptifs. Il existe deux éditeurs de propriétés que nous n'avons pas encore rencontrés: les éditeurs d'icônes et de couleurs. Alors, dépensons-y:
Icon Property
Tout d'abord, vous remarquerez que c'est une chaîne. Lorsque nous sélectionnons une icône de police géniale nous obtiendrons une chaîne comme " fa fa-star" que nous pouvons utiliser directement comme classe CSS comme dans:
.
Si vous ne connaissez pas cette syntaxe, consultez la section fontawesome .
Deuxièmement, nous spécifions le editorType
pour être l'icône
et le plus important qu'il s'ouvre dans une fenêtre de dialogue en utilisant "editorRowType"
: "window"
. Ceci est nécessaire car l'interface utilisateur de sélection d'icônes est trop complexe pour s'intégrer parfaitement dans le panneau de propriétés.
Voici à quoi il ressemble dans le panneau de propriétés:
Nous définissons également un modèle:
01.
[
span
>
[19659002] 02.
<% pour (i = 0;
valeur
; i ++) {%>
03.
style = "marge-droite: px;
04.
couleur: ]
05.
font-size: px »
06.
class = "">
07.
08.
09.
</
span
>
Ce modèle répète simplement x nombre de fois pour répéter une icône de police impressionnante.
L'icône est stylisée avec les différentes propriétés que nous entrons dans le concepteur. ] Run-Time
Ici, nous implémentons un template de composant personnalisé qui encapsule un composant de notation Angular. C'est la même technique présentée dans ce blog .
Dans components / custom-rating-comp / angular / config.json.ejs nous définissons toutes les propriétés à partir du temps de conception que nous voulons utiliser:
1. [19659054] {
2.
"espacement": "",
3.
"hauteur": "",
4.
"couleur": "",
5.
"icône": "",
6.
"valeur": ""
7.
}
Ces propriétés seront ajoutées aux éléments composants de la $ config
variable (Le nom de fichier généré est app / src / app / modules / composants-personnalisés / rating / rating.view.base.component.ts )
Par exemple, j'ai ajouté deux instances dans ma vue vide et j'ai:
01.
public $ config: any = {
02.
composants: {
03.
customratingcomp0: {
04.
"espacement"
:
"6"
05.
"hauteur"
:
"25"
06.
"couleur"
:
"bleu"
07.
"icône"
:
"fa fa-star"
08.
"valeur"
:
"5"
09.
},
10.
customratingcomp1: {
11.
"espacement"
:
"3"
12.
"hauteur"
:
"15"
13.
"couleur"
:
"# 48d3d3"
14.
"icône"
:
"fa fa-verre"
15.
"valeur"
:
"5"
16.
}
17.
}};
Le fichier de gabarit est simple puisqu'il transmet essentiellement toutes les propriétés à la composante angulaire. Nous devons juste nous rappeler d'utiliser la propriété id
pour accéder à l'instance spécifique:
1.
[
custom-rating
2.
]
[rating] = "$ config.components. .value"
3.
[color] = "$ config.components. .color"
4.
[icon] = "$ config.components. .icon"
5.
[spacing] = "$ config.components. .spacing"
6.
[height] = "$ config.components. .haut"
7.
>
8.
</
>
Composant angulaire
Il est disponible à Cet annuaire GitHub .
Le modèle est concis:
1.
[
envergure
>
2.
[
]
[ngStyle] = "{'color': couleur, 'margin-right': espacement, 'font-size': height}"
3.
[class] = "icône"
4.
*
ngFor
=
"laissez x de loopCounter"
>
5.
6.
</
trav
>
Nous répétons l'icône n fois en utilisant une construction ngFor
. Nous utilisons les propriétés du concepteur soit en tant que classe CSS (pour l'icône), soit en tant que styles CSS (hauteur, couleur, espacement).
Le fichier de composant TypeScript de est simple. La seule chose notable est que nous créons un tableau fictif à utiliser avec ngFor
comme ngFor
ne fonctionne que sur itérable (il n'accepte pas un nombre simple).
Pour utiliser cet exemple , vous devez enregistrer le composant angulaire dans le système Module angulaire. Ajoutez le code suivant au code source d'application généré: app src app shared shared.module.ts :
1.
import {RatingComponent} à partir de
'./ customcomp / hello-world.component / rating.component '
;
2.
config.exports.push (RatingComponent);
3.
config.declarations.push (RatingComponent);
Veuillez suivre les mêmes étapes décrites dans la section " Étapes à suivre pour utiliser Sample" dans ce blog .
Conclusion
Nous avons construit une composante de notation qui ne nécessite aucun codage du tout. Il est entièrement configurable avec pointer et cliquer.
Ce blog a démontré que c'était une tâche relativement facile. L'une des principales raisons est que nous pouvons tirer parti des éditeurs d'icônes et de couleurs existants dans le panneau des propriétés pour simplifier l'adaptation du composant d'évaluation à toute icône Font Awesome. Et puisque ces icônes sont basées sur la technologie SVG, nous pouvons facilement personnaliser leur taille et leur couleur avec les propriétés CSS.
Cet exemple utilise la valeur d'évaluation entrée au moment du design pour décider du nombre d'étoiles à restituer. C'est bien pour un échantillon d'apprentissage, mais pas aussi utile dans la pratique. Lors d'une prochaine itération de ce composant, nous expliquerons comment nous pouvons l'accrocher pour afficher la valeur d'évaluation d'un objet sélectionné dans un autre composant sur la même page (combo-box). Restez à l'écoute [
Rattrapez-vous sur Kendo UI Builder
Si vous avez sauté dans cette série au milieu et que vous voulez commencer depuis le début, vous pouvez trouver les billets de blog précédents ici:
- Modèles de Créateur d'UI de Kendo
- Modèles de Créateur de UI de Kendo
- Traitement d'Événement dans les Modèles de Builder Kendo UI
- Augmenter les Modèles dans le Kendo Modèles de générateur d'interface utilisateur
-
Introduction aux composants personnalisés pour Kendo UI Builder
- Création de composants personnalisés Kendo UI Builder à partir de composants angulaires
Source link