KROK 1: Utworzenie projektu Angular w Visual Studio 2022
- Otwórz Visual Studio 2022.
- Wybierz: File > New > Project.
- Wyszukaj: Angular App
- Nazwij projekt: BMIApp.
- Kliknij Create.
- Poczekaj, aż Visual Studio utworzy projekt.
- Przejdź do katalogu projektu (cd BMIApp)
KROK 2: Instalacja zależności
npm install @angular/forms@19.2.14 --legacy-peer-deps
KROK 3: Utworzenie komponentu bmi-calculator
W terminalu (Visual Studio) wpisz:
ng generate component bmi-calculator --standalone
KROK 4: Kod komponentu BMI
bmi-calculator.component.ts
import { Component } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
@Component({
selector: 'app-bmi-calculator',
standalone: true,
imports: [CommonModule, FormsModule],
templateUrl: './bmi-calculator.component.html',
styleUrls: ['./bmi-calculator.component.css']
})
export class BmiCalculatorComponent {
height: number = 0;
weight: number = 0;
bmi: number | null = null;
obliczBMI() {
if (this.height > 0 && this.weight > 0) {
const heightInMeters = this.height / 100;
this.bmi = this.weight / (heightInMeters * heightInMeters);
alert(`Twoje BMI to: ${this.bmi.toFixed(1)}`);
}
}
}
bmi-calculator.component.html
<div class="container">
<img src="assets/bmi.png" alt="BMI" class="bmi-image">
<label>Podaj wzrost (cm):</label>
<input type="number" [(ngModel)]="height" placeholder="np. 180">
<label>Podaj wagę (kg):</label>
<input type="number" [(ngModel)]="weight" placeholder="np. 75">
<button (click)="obliczBMI()">Oblicz</button>
<p *ngIf="bmi !== null">Twoje BMI wynosi: {{ bmi | number:'1.1-1' }}</p>
</div>
bmi-calculator.component.css
.container {
background-color: #c3fcbc;
padding: 30px 20px;
border-radius: 16px;
max-width: 450px;
margin: 40px auto;
text-align: center;
font-family: 'Segoe UI', sans-serif;
box-shadow: 0 0 15px rgba(0, 0, 0, 0.1);
}
.bmi-image {
width: 120px;
display: block;
margin: 0 auto 20px auto;
}
label {
display: block;
margin: 10px 0 5px;
font-weight: 600;
}
input {
width: 90%;
padding: 10px;
margin: 0 auto 10px auto;
display: block;
border-radius: 5px;
border: 1px solid #ccc;
font-size: 16px;
}
button {
background-color: #ffffff;
padding: 10px 25px;
border-radius: 8px;
border: 1px solid #999;
font-size: 16px;
font-weight: 600;
box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.2);
cursor: pointer;
transition: all 0.2s ease-in-out;
}
button:hover {
background-color: #f2f2f2;
transform: scale(1.03);
}
p {
margin-top: 20px;
font-weight: bold;
font-size: 18px;
}
KROK 5: Podłączenie komponentu jako startowego
app.component.ts
Kod powinien wyglądać tak:
import { Component } from '@angular/core';
import { BmiCalculatorComponent } from './bmi-calculator/bmi-calculator.component';
@Component({
selector: 'app-root',
standalone: true,
imports: [BmiCalculatorComponent],
template: `<app-bmi-calculator></app-bmi-calculator>`,
})
export class AppComponent {}
main.ts
Upewnij się, że wygląda tak:
import { bootstrapApplication } from '@angular/platform-browser';
import { AppComponent } from './app/app.component';
bootstrapApplication(AppComponent)
.catch(err => console.error(err));
KROK 6: Uruchamiamy Twój projekt.
Przejdź do app.component.html i ustaw ścieżkę do Twojej strony
<app-bmi-calculator></app-bmi-calculator>
UWAGA!
Jeśli tworzysz wersję komponentów „standalone”, to Visual Studio czasem wygeneruje app.module.ts, co powoduje błędy z komponentami standalone.
Upewnij się, że plik app.module.ts został usunięty, bo nie jest potrzebny w podejściu standalone.
Dla obrazka nie tworzylem katalodu assets tylko dodałem go bezpiośrednio do katakolu Public
