Próbuję tylko utworzyć konstruktor z numerem typu, ale otrzymuję błąd jako "Ten typ nie jest obsługiwany jako token wtryskowy"

Jestem nowy w kątowi. Co tu robię źle?

import { Component } from '@angular/core'

@Component({
    selector : 'app-even',
    templateUrl : './even.component.html',
    styleUrls : ['./even.component.css']
})
export class EvenComponent
{
    num : number;
    
    constructor(num : number){
        this.num = num;
    }
}

Otrzymuję następujący błąd:

Injection type error

Używam tego evencomponent w appcomponent

export class AppComponent implements DoCheck{
  evenCounts : EvenComponent[];
}
0
Kiran Cyrus Ken 8 czerwiec 2021, 18:39

2 odpowiedzi

Najlepsza odpowiedź

Jeśli chcesz przejść dane do komponentu, musisz użyć @Input(). Na przykład:

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

@Component({
    selector : 'app-even',
    templateUrl : './even.component.html',
    styleUrls : ['./even.component.css']
})
export class EvenComponent implements OnInit
{
    @Input() num : number;
    
    constructor() { }

    ngOnInit(): void {

        // You can use this value now
        console.log(this.num);

    }

}

Aby przekazać wartość do komponentu, dodasz następujące informacje do rodzica szablonu HTML:

<app-even [num]="3"></app-even>

Uwaga: Nie można używać wartości przekazanych w komponencie w konstruktorze, ponieważ wartość nie będzie jeszcze gotowa, a zawsze otrzymasz undefined.

Jeśli jesteś nowy w kątowi, może warto przejść przez Tour of Heroes samouczek, aby odebrać jakąś podstawową wiedzę .

Powodzenia!

2
John Tiggernaught 8 czerwiec 2021, 15:55

Kątowy próbuje rozwiązać zależność Num. Jeśli próbujesz przekazać num do komponentu, proponuję używanie @input () Decorator

https://angular.io/guide/inputs-outputs.

https://angular.io/guide/dependency-injection.

0
Adith Sukumar 8 czerwiec 2021, 15:50