Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度2输入装饰器为什么需要?_Angular - Fatal编程技术网

Angular 角度2输入装饰器为什么需要?

Angular 角度2输入装饰器为什么需要?,angular,Angular,我研究Angular 2。我面临的任务是将数据传输到父组件的组件。在官方文档中使用@input。没有,但我不理解Angular 2的开发人员为什么需要它?为什么没有@input就不会进行传输。为什么要添加@input?在解释文档中,对于me要定义组件的输入,请使用@input decorator 例如,组件需要一个用户参数来呈现有关该用户的信息: <user-profile [user]="currentUser"></user-profile> 因此,您需要向用户

我研究Angular 2。我面临的任务是将数据传输到父组件的组件。在官方文档中使用@input。没有,但我不理解Angular 2的开发人员为什么需要它?为什么没有@input就不会进行传输。为什么要添加@input?在解释文档中,对于me

要定义组件的输入,请使用@input decorator

例如,组件需要一个用户参数来呈现有关该用户的信息:

<user-profile [user]="currentUser"></user-profile>

因此,您需要向用户添加@Input绑定:

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

@Component({
  selector: 'user-profile',
  template: '<div>{{user.name}}</div>'
})
export class UserProfile {
  @Input() user;
  constructor() {}
}
从'@angular/core'导入{Component,Input};
@组成部分({
选择器:“用户配置文件”,
模板:“{user.name}”
})
导出类用户配置文件{
@输入()用户;
构造函数(){}
}

组件模板中的绑定,如
[inputProp]=“someValue”
仅允许
@Input()inputProp或具有匹配名称的HTML元素的本机属性

我只是在猜测,但我想到了两种解释

  • 更高效的代码或代码生成 如果属性需要显式,这将允许更高效的代码

  • 更好地支持工具 这允许工具检查代码中的错误,在编写模板时提供自动完成功能,可能还有更多功能

看看这里: