javascript - @Input 和@Output 在 Angular 5 中始终未定义

标签 javascript angular

个人内部的任何值都可以毫无问题地打印出来,但是使用@Input 或@Output 获得的任何值都不会正确显示。

我正在尝试使用父属性 parentData 在 child.component.ts 中分配 childData。

同样,我正在尝试将子属性“数据”分配给父属性“数据”

child.component.ts

@Component({
  selector: 'app-child',
  templateUrl: './child.component.html',
  styleUrls: ['./child.component.css']
})
export class ChildComponent implements OnInit {

  @Input() public childData: string;
  @Output() public event: EventEmitter<string> = new EventEmitter();
  public data = 'Harsha';
  constructor() { }

  onClick() {
    console.log("sending value to parent:"+this.data);
    this.event.emit(this.data);
  }

  ngOnInit() {
  }

}

parent.component.ts

@Component({
  selector: 'app-parent',
  templateUrl: './parent.component.html',
  styleUrls: ['./parent.component.css']
})
export class ParentComponent implements OnInit {

  public parentData = 'Hello Parent';
  public data: string;

  constructor() { }

  onOutputEvent(data: string){
    console.log("in parent:"+data);
    this.data = data;
  }

}

<!-- child.component.html -->
<h3>Printing parent value in child component: {{childData}}</h3>

<h4>Printing child value:{{data}}</h4>

<button (click)="onClick()">Send value to parent</button>

<!-- parent.componnt.html -->
<h3>Printing parent Data: {{parentData}}</h3>
<h4>Printing child Data: {{data}}</h4>

<app-child> [childData]="parentData" (event)="onOutputEvent($event)"</app-child>

<!-- app.component.html -->
<div style="text-align:center">
  <h1>
    Welcome to {{ title }}!
  </h1>
</div>

<app-parent></app-parent>

最佳答案

您在分配属性之前关闭了标签。

<app-child [childData]="parentData" (event)="onOutputEvent($event)"></app-child>

关于javascript - @Input 和@Output 在 Angular 5 中始终未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53055891/

相关文章:

Angular 4 - 未选中复选框时从数组中删除值

javascript - 我将如何将拖放项目保存到表单变量并通过电子邮件发送?

javascript - jQuery 将 div 放在两个不同的 div 之间

angular - typescript : Can't instantiate object using object literals when a function exists in the class

Angular :单元测试路由:预期 '' 为 '/route'

json - 如何将外部 JSON 文件加载到 Angular 2 中的测试中?

javascript - Babel.js 尾调用中的 "_function: while"语法是什么?

javascript - 选择祖先的问题

javascript - 正则表达式:在每行的单个字符之前获取匹配项

javascript - 获取详细信息后动态检查附加到 DOM 的输入框