我正在学习 Angular2,所以要温和...我有一个基本组件,它有一个字符串数组。我想将一个整数传递给该组件并让它返回在该参数的索引处找到的字符串。
例如myComponent[number]=1 返回字符串“第二个元素”。
到目前为止我的代码是这样的:
import { Component } from '@angular/core';
@Component({
selector: 'myComponent',
template:
`<h1>Returned Value {{returnedString}}</h1>,`,
inputs:['number']
})
export class MyComponent {
myStringArray: string[];
returnedString: string;
constructor(){
this.myStringArray = ['First','Second','Third','Forth','Fifth','Sixth'];
this.returnedString = 'number'+this.myStringArray['number'.valueOf()];
}
}
我是这样调用这个组件的
<myComponent [number]=1></myComponent>
我打印返回到屏幕的值并得到“undefined”。
有什么想法吗?
最佳答案
因为您想绑定(bind)到自定义属性,从核心导入 Input 和 OnChanges,然后作为 Input 实现以创建您的自定义属性。 OnChanges 只是确保您的值在绑定(bind)值更改时得到更新。
从组件装饰器中删除 inputs 键
import { Component, Input, OnChanges } from '@angular/core';
@Component({
selector: 'myComponent',
template:
`<h1>Returned Value {{returnedString}}</h1>,`
})
export class MyComponent implements OnChanges {
myStringArray: string[];
returnedString: string;
@Input() inputNumber: number;
constructor(){
this.myStringArray = ['First','Second','Third','Forth','Fifth','Sixth'];
this.returnedString = 'number'+this.myStringArray[Number(this.inputNumber)];
}
ngOnChanges() {
this.returnedString = 'number'+this.myStringArray[Number(this.inputNumber)];
}
}
将您的代码用法更新为以下内容
<myComponent [inputNumber]="1"></myComponent>
这是一个示例 plunker。 https://plnkr.co/edit/S074zoVJ3ktQDKkcQgxe?p=preview
关于html - 将参数传递给 Angular2 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41926598/