html - 将参数传递给 Angular2 组件

标签 html angular

我正在学习 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/

相关文章:

javascript - 更新文本但不更新样式操作

javascript - JS onClick 或模式切换按钮

angular - ngBootstrap Angular 8 - 模态可调整大小和可拖动

javascript - bootstrap-grid 使用 jquery 吗?

angular - Ionic 4 Console.Log() 未显示在函数中

html - ul 列表的 css 问题

html - Firefox 不尊重可见性 :hidden on table header

javascript - 减去文档片段滚动的垂直偏移

关于组件属性更改的 Angular 2 更新 View

angular - 如何防止浏览器网络选项卡中的授权 header