• Skip to main content
  • Skip to primary sidebar

Web Development Archive

  • Archive
You are here: Home / Other / Example for Models and Services

Example for Models and Services

GitHub

Model

export interface Card {
    cardTitle: string;
    cardText: string;
    cardCat: string;
    cardImg: string;
    cardColor: string;
}

Service

import { Injectable } from '@angular/core';
import { Card } from '../models/Card'; 

@Injectable({
  providedIn: 'root'
})

export class CardService {
  
  cards: Card[];
  
  constructor() {
    
    this.cards = [
      { 
        cardTitle: 'Ez érint minden budapesti autóst is! Így autózhatunk lejárt forgalmival',
        cardText: 'Vészesen közeleg a lejárt okmányokkal kapcsolatos türelmi idő vége, de nem kell megijedni, van még egy kis haladék a forgalmi érvényességét illetően.',
        cardCat: 'Okmány',
        cardImg: 'https://metropol.hu/wp-content/uploads/2022/05/392601420220530bentinkutforgalmi4114MKMP-scaled.jpg',
        cardColor: 'primary'
      },
      { 
          cardTitle: 'A magyar emberek pénztárcáját kell a háborús inflációtól megkímélni',
          cardText: 'Elsősorban a magyar emberek pénztárcáját kell a háborús inflációtól megkímélni – jelentette ki Szentkirályi Alexandra kormányszóvivő az M1 aktuális csatorna hétfő reggeli műsorában.',
          cardCat: 'Szentkirályi Alexandra',
          cardImg: 'https://metropol.hu/wp-content/uploads/2020/10/DYT20201001012-scaled.jpg',
          cardColor: 'secondary'
      },
      { 
          cardTitle: 'Gondoltad volna? A magyarok 62 százaléka harcolna, ha megtámadnák hazánkat',
          cardText: 'A Publicus Intézet május 26–30. között 1004 fő megkérdezésével készített országos reprezentatív közvélemény-kutatásban kérdezte az embereket arról, hogy mit tennének, ha Magyarország háborúba keveredne.',
          cardCat: 'Honvédelem',
          cardImg: 'https://metropol.hu/wp-content/uploads/2020/09/5f575e717ebc7151718983FOTOhonvedelemhu-1.jpg',
          cardColor: 'primary'
      }
    ]
  }
  getCards(): Card[] {
    console.log('Fetching cards from service...');
    return this.cards;
  }
}

Component.ts

import { Component, OnInit } from '@angular/core';

import { CardService } from './services/card.service';
import { Card } from './models/Card'; 

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit{
  mainTitle = 'Totális káosz! Szinte lehetetlenség lesz közlekedni mától Budapesten';
  mainLead = 'Mától fejre áll szinte az egész város közlekedése, szívnak az autósok és a tömegközlekedők is. Lezárják a budai alsó rakpartot a Lánchíd felújítása miatt, de a 2-es villamos és a 3-as metró közlekedésében is lesz változás.';
  mainImg = 'https://metropol.hu/wp-content/uploads/2022/06/5636819b004a637f0f5cd64ae5da529d22309d0collageImage.jpeg';

  card: Card = {
    cardTitle: '',
    cardText: '',
    cardCat: '',
    cardImg: '',
    cardColor: ''
  }
  cards: Card[];

  constructor(private cardService: CardService) { }

  ngOnInit() {
   
    this.cards = this.cardService.getCards();

  }
}

HTML

<div class="row py-lg-5">
  <div class="col-lg-6 col-md-8 mx-auto">
    <img class="img-fluid" [src]="mainImg" [alt]="mainTitle">
    <h1 class="fw-light">
      {{mainTitle}}
    </h1>
    <p class="lead text-muted">
      {{mainLead}}
    </p>
  </div>
</div>

<div class="container">
  <div class="row row-cols-1 row-cols-sm-2 row-cols-md-3 g-3">

    <div class="col" *ngFor="let card of cards">
      <div class="card shadow-sm">
        <img class="card-img-top" [src]="card.cardImg" [alt]="card.cardTitle">

        <div class="card-body">
          <h4 class="card-title">
            {{card.cardTitle}}
          </h4>
          <p class="card-text">{{card.cardText}}</p>
          <div class="d-flex justify-content-between align-items-center">
            <div class="category">
              Kategória: <strong>{{card.cardCat}}</strong>
            </div>
          </div>
        </div>
      </div>
    </div>

  </div>
</div>

Filed Under: Other

About Gabor Flamich

I'm a web developer and designer based in Budapest, Hungary. In recent years, I've documented hundreds of solutions I came across during development. This site is an archive for useful code snippets on WordPress, Genesis Framework and WooCommerce. If You have any questions related to WordPress development, get in touch!

Primary Sidebar

  • angular.io
© 2026 WP Flames - All Right Reserved