Angular 如何传递到组件构造函数或ngOnInit

Angular 如何传递到组件构造函数或ngOnInit,angular,Angular,我有一些代码,我一直在工作,但我找不到任何关于这个谷歌。基本上,我希望将一个表示ID的数字传递给我的组件,以便在实例化该组件时使用 我不知道该怎么做 <div class="row"> <div class = "col-xs-12"> <app-server *ngFor = "let server of servers"></app-server> </div> </div> 构造

我有一些代码,我一直在工作,但我找不到任何关于这个谷歌。基本上,我希望将一个表示ID的数字传递给我的组件,以便在实例化该组件时使用

我不知道该怎么做

<div class="row">
    <div class = "col-xs-12">
        <app-server *ngFor  = "let server of servers"></app-server>
    </div>
</div>


构造函数或ngOnInit将被传递一个数字参数。

app server
组件中,您需要
从“@angular/core”导入{component,Input}

然后我们可以使用
@Input
让组件知道您将通过模板接收此变量的值

因此该组件看起来像

//... other imports 
import { Component, Input } from '@angular/core';

@Component({
    selector: "app-server",
    templateUrl: "...,
    styleUrls: ["..."]
})
export class AppServerComponent {

    @Input id: number;

    //.. rest of code

}
模板中,您可以提供如下值:

<app-server *ngFor="let server of servers" [id]="desired_id_value"></app-server>


app server
组件中,您需要从“@angular/core”导入{component,Input}”

然后我们可以使用
@Input
让组件知道您将通过模板接收此变量的值

因此该组件看起来像

//... other imports 
import { Component, Input } from '@angular/core';

@Component({
    selector: "app-server",
    templateUrl: "...,
    styleUrls: ["..."]
})
export class AppServerComponent {

    @Input id: number;

    //.. rest of code

}
模板中,您可以提供如下值:

<app-server *ngFor="let server of servers" [id]="desired_id_value"></app-server>


您是指
@Input()
?请参阅。您是指
@Input()
?请参阅。因此,我们不能只传递一个值?这是有道理的,但我想确定一下。@AlexanderStaroselsky在这种情况下,我为什么要将整个服务器对象传递给itself@user3851290你的意思是你是否可以只传递整个
服务器
项?如果是这样的话,是的,你可以,你可以通过你需要的少或多。您只需要更新@Inpu()的类型。我不知道为什么你需要传递一个或另一个,我只是解释你可以根据你的需求和应用程序的小或多,根据你的要求和应用在子组件中使用@输入()。我习惯于C++。假设你的格式,如果我想说[id]=servers[server],我知道它不起作用,因为“server”是一个对象,那么我如何访问索引?@user3851290是的,你可以传递一个值或一个常量。ie
所以我们不能只传递一个值?这是有道理的,但我想确定一下。@AlexanderStaroselsky在这种情况下,我为什么要将整个服务器对象传递给itself@user3851290你的意思是你是否可以只传递整个
服务器
项?如果是这样的话,是的,你可以,你可以通过你需要的少或多。您只需要更新@Inpu()的类型。我不知道为什么你需要传递一个或另一个,我只是解释你可以根据你的需求和应用程序的小或多,根据你的要求和应用在子组件中使用@输入()。我习惯于C++。假设你的格式,如果我想说[id]=servers[server],我知道它不起作用,因为“server”是一个对象,那么我如何访问索引?@user3851290是的,你可以传递一个值或一个常量。ie