带有@input属性的Angular 7双向绑定

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有@input属性的Angular 7双向绑定相关的知识,希望对你有一定的参考价值。

我有一个子组件,它使用@Input指令从父组件获取属性值。问题是双向数据绑定似乎不适用于此输入属性。任何想法可能是什么原因?

子组件类

@Component(
  selector: 'app-edit-property',
  templateUrl: './edit-property.component.html',
  styleUrls: ['./edit-property.component.css']
)
export class EditPropertyComponent implements OnInit 

  @Input() property: any;

  constructor(
    private propertiesService: PropertiesService
  )  

  ngOnInit() 
  

模板

<input type="text" class="form-control" required name="title" [(ngModel)]="property.title" #title="ngModel">

父组件

<app-edit-property [property]='property'></app-edit-property>
答案

对于双向绑定工作,您必须实现一个具有相同属性名称的@Output,并将Change更改为后缀,如下所示:

@Input() counter;
@Output() counterChange = new EventEmitter();

在HTML中,你添加[(counter)]="someValue"

你发出这样的新值:

this.counterChange.emit(this.counterValue);
另一答案

@Input指令专为单向绑定而设计。您只能使用@Input获取组件的值。使用@Output指令从组件中发出值,以便父组件接收该值。

以上是关于带有@input属性的Angular 7双向绑定的主要内容,如果未能解决你的问题,请参考以下文章

Angular 7,双向数据绑定

angular入门篇(2)——*ngIf,数据绑定事件,属性绑定

Angular2 @Input 到带有 get/set 的属性

Angular - 来自@Input的双向数据绑定不起作用

v-mode 双向数据绑定

Vue响应式原理/双向数据绑定