Angular:不支持此类型作为注入(inject) token

标签 angular typescript

我只是想创建一个类型为 number 的构造函数,但收到错误“此类型不支持作为注入(inject) token ”

我是 Angular 新手。我在这里做错了什么?

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;
    }
}

我收到以下错误:

Injection type error

我在AppComponent中使用这个EvenComponent

export class AppComponent implements DoCheck{
  evenCounts : EvenComponent[];
}

最佳答案

如果要将数据传递给组件,则需要使用@Input()。例如:

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);

    }

}

要将值传递到组件中,请将以下内容添加到父 HTML 模板中:

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

注意:您不能在构造函数中使用传递到组件中的值,因为该值尚未准备好,并且您将始终得到未定义

如果您是 Angular 新手,可能值得阅读 Tour of Heroes教程来学习一些核心知识。

祝你好运!

关于Angular:不支持此类型作为注入(inject) token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67890241/

相关文章:

angular2 rxjs 检查 forkJoin 完全完成的方法

angular - 如何使用 Angular Material 在工具提示中选择垫子选择值

node.js - sequelize/sequelize-typescript - findAll 和 HasMany 返回一个对象而不是数组

javascript - Angular 2 : setTimeout only called once

typescript - 文档类型上不存在属性 "password"

angular - Angular 4 中的 ngx-slick 轮播不移动项目

javascript - 如何在按钮单击时有条件地以 Angular 加载组件

angular - 延迟加载问题 : Loading chunk 0 failed

angular - 未从模型调用 Setter/getter

typescript - 在 TypeScript 中从 `process.argv` 设置参数的类型,没有类型断言