קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
קודקודייל
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
  • קודקודייל
  • מי אתם קודקודייל?
  • קורסים בחינם
  • צרו קשר
  • בניית אתרים
    • וורדפרס
  • נגישות אתרים
  • כל הקטגוריות
    • אנגולר
    • HTML
    • CSS
    • Javascript
    • Typescript
    • NodeJs
    • בלוקציין
ראשי ♦ אנגולר ♦ Custom pipe in angular

Custom pipe in angular

עידן יצחקי 29 במאי 2021 אין תגובות

יש מספר פאייפים שמגיעים כברירת מחדל בפרויקט אנגולר כמו :

  • async
  • json
  • uppercase
  • currency
  • slice
  • date

ועוד מספר פאייפים נוספים.

היתרון המאוד גדול שלהם הוא:

הם לא משנים את המידע במשתנה אלא לוקחים את המידע "מעתיקים" אותו, משנים אותו ומחזירים אותו לאחר שינוי.

זה אומר, שניתן להשתמש במידע לאורך ה-html ולהעביר אותו דרך פאייפים שונים בידיעה שהם לא יפריעו אחד לשני.

עכשיו לחלק המעניין,

איך בונים פאיפ כזה בעצמנו?

הסבירות היא מאוד גדולה שבשלב מסויים נרצה לעשות את הפעולה הזאת, מהסיבה שהאופציות שניתנות כברירת מחדל בדרך כלל למכסות את כל האופציות או לא מתאימות לגמרי למה שאנחנו רוצים.

בואו נבנה פאיפ שיוסיף למספר רגיל הפרדה של פסיקים כל 3 ספרות.

בפרויקט שלנו, הדף שמציג את המידע הוא home שנמצא בספרית pages

הפאיפ שלנו נקרא בשם commasSeparation והוא נמצא בתוך ספריה בשם pipes.

pipes ו-pages נמצאות באותה רמה, זאת אומרת שהן באותה ספריה ששמה app

נפתח טרמינל בספריה pages ונקליד את הפקודה הבאה:

ng g c home

לאחר מכל נלך לספריה pipes ונקליד את הפקודה הבאה:

ng g p commas-separation

עכשיו נוסיף ונערוך את הקבצים כך:

<span>{{bigNumber|commasSeparation}}</span>
<ul>
    <li *ngFor="let n of bigNumberArr">
        <span>{{n|commasSeparation}}</span>
    </li>
</ul>
  export class HomeComponent implements OnInit {
  bigNumber: number = 1234567890;
  bigNumberArr: number[] = [123456789, 12345678, 1234567, 123456, 12345, 1234, 123, 12, 1]
  constructor() { }

  ngOnInit(): void {
  }
}

הפאיפ

 transform(value: number, ...args: unknown[]): string {

    return value.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
  }

בתוך הפאיפ אפשר לכתוב כל פונקציה שרוצים ורק לדאוג לבצע return בסוף של המידע לאחר השינויים, במקרה הזה, השתמשתי ב-regex.

value = המידע שנכנס, אשר עליו אנחנו רוצים לעבוד.

args = מידע נוסף אשר על פיו אנחנו רוצים לשנות את value, כמו בתאריך, לפאיפ של תאריך – date אנחנו יכולים להוסיף גם איך אנחנו רוצים שהוא יחזיר את מבנה התאריך 'dd-mm-yyyyy' וכו'.

במקרה שלנו, אנחנו לא צריכים ערכים נוספים ולכן אין שימוש וצורך ב-args והוא מסוג unknown.

ברכיב הבית שלנו יש לנו 2 משתנים, אחד הוא מסוג מספר ואחד מסוג מערך כאשר בכל אחד מהמספרים יש פחות סיפרה אחת.

אלו התוצאות:

1,234,567,890
123,456,789
12,345,678
1,234,567
123,456
12,345
1,234
123
12
1

פוסטים קשורים:

שימוש יעיל ב async pipe – אנגולר מיניון מחזיק בננהangular input and output in the same variable תמונת אווירה של שלט שינויצורות שונות לקריאה של קומפוננטות אנגולר (angular selector types) custom validator for group angularcustom validator for groups – אנגולר ולידטור ייחודי לגרופ ב-reactive form
pipes אנגולר

אודות המחבר

עידן יצחקי להציג את כל הפוסטים של עידן יצחקי


« פוסט קודם
פוסט הבא »

השארת תגובה

ביטול

חיפוש באתר
בחירת העורכים
29 בדצמבר 2023 עידן יצחקי

שדה טקסט עשיר עם תמונות

אתם הולכים להיות מופתעים עד כמה HTML יכול להיות חכם ולבצע משהו כל כך מורכב, שאם אנחנו היינו רוצים ליצור

1 באוקטובר 2021 עידן יצחקי

איך למשוך דינמית favicon של אתרים אחרים ב-JS

בפוסט זה נראה איך אפשר על פי לינקים בדף למשוך את ה-favicon מהדומיין שלהם באופן דינמי, בדיקה של תקינות התמונה

פופולרי
Javascript functions – היכרות עם סוגי פונקציות
Javascript
21 בדצמבר 2024 אין תגובות
Nested routing in angular standalone component
Typescript
15 בנובמבר 2024 אין תגובות
בחרו לפי תגיות
angular blockchain css ethers express front-end fullstack GQL html javascript next js nextjs nodejs react hooks reactjs solidity webgl אנגולר בלוקציין וורדפרס לימודי אנגולר לימודי וורדפרס לימוד ריאקט מדריך front-end מדריך GQL מדריך אנגולר מדריך וורדפרס מדריך חינם react מדריך ריאקט מפתח בלוק מפתח בלוקציין מתכנת front-end מתכנת בלוקציין מתכנת פרונט סולידיטי קורס front end קורס fullstack קורס nextjs קורס אנגולר קורס בלוקציין קורס בלוקציין בחינם קורס סולידיטי קורס ריאקט קורס תכנות קורס תכנות בחינם
סינון על פי קטגוריות
CSS fullstack HTML IIS Javascript nodeJs SEO Typescript אנגולר בלוקציין בניית אתרים וורדפרס חיפוש עבודה כלים נוספים כללי נגישות קורסים ריאקט תלת מימד תקלות ופתרונות
צור קשר
כל הזכויות שמורות לקודקודייל
ליצירת קשר: @ קודקודייל
גלילה לראש העמוד
דילוג לתוכן
פתח סרגל נגישות כלי נגישות

כלי נגישות

  • הגדל טקסטהגדל טקסט
  • הקטן טקסטהקטן טקסט
  • גווני אפורגווני אפור
  • ניגודיות גבוההניגודיות גבוהה
  • ניגודיות הפוכהניגודיות הפוכה
  • רקע בהיררקע בהיר
  • הדגשת קישוריםהדגשת קישורים
  • פונט קריאפונט קריא
  • איפוס איפוס