Javascript 角度绑定@输入行为无法正常工作
我在AngularJavascript 角度绑定@输入行为无法正常工作,javascript,angular,typescript,binding,Javascript,Angular,Typescript,Binding,我在AngularEventEmitter和Angular@Input方面遇到一些问题 我的应用程序有三个组件:两个组件(TableComponent和MapComponent)之间不进行交互,另外一个组件类似于这两个组件的父亲(BodyComponent) TableComponent定义了以下@Input _oportunidades: Item[]; @Input() set oportunidades(oportunidades: Item[]){ debugger;
EventEmitter
和Angular@Input
方面遇到一些问题
我的应用程序有三个组件:两个组件(TableComponent
和MapComponent
)之间不进行交互,另外一个组件类似于这两个组件的父亲(BodyComponent
)
TableComponent
定义了以下@Input
_oportunidades: Item[];
@Input() set oportunidades(oportunidades: Item[]){
debugger;
this._oportunidades = oportunidades;
this.dataSource = new MatTableDataSource<Item>(this._oportunidades);
this.dataSource.paginator = this.paginator;
}
当程序将新地图信息发送到车身时
被触发。将修改后的数据发送到车身组件
。BodyComponent
捕获它时没有错误。
BodyComponent
html如下所示:
<div class="analysis">
<app-mapa (event_emitter_for_items_filtered_by_polygon)="items_filtered_by_polygon($event)" [items]="map_data"></app-mapa>
<app-tabla [oportunidades]="oportunidades_filtradas"></app-tabla>
</div>
变量oportunidades\u filteradas
绑定到TableComponent
中的oportunidades
变量(如BodyComponent
html所示),当items\u polygon
方法更改oportunidades\u filteradas
时,@Input()设置oportunidades(oportunidades:Item[])
未被触发。因此,myTableComponent
中没有显示任何更改
当应用程序启动,数据通过组件分发时,一切都按预期进行。就在这种情况下,当试图按照说明修改TableComponent
内容时,什么也没有发生
在chrome的devtools控制台中,没有显示任何错误。应用程序的流程并不奇怪,只是什么都没发生。
有时,我们认为修改正在进行中,但可能它们被严重延迟了?也许是某种异步问题
我在角度上是个新手,也许我不懂什么。我的应用程序中的所有其他绑定都正常工作
你觉得怎么样?欢迎任何帮助!
谢谢 这听起来像是发生了变化检测问题。根据您的变更检测策略,可能会发生类似的情况。尝试在项目中使用“按多边形过滤”函数,看看这是否是问题所在。如果有效,您可以将其保留或删除,并对未触发的输入使用可观测值。您是否在BodyComponent中使用
ChangeDetectionStrategy.OnPush
?这解决了我的问题。谢谢你的建议。总的来说,阅读这些解决方案确实很有帮助。
<div class="analysis">
<app-mapa (event_emitter_for_items_filtered_by_polygon)="items_filtered_by_polygon($event)" [items]="map_data"></app-mapa>
<app-tabla [oportunidades]="oportunidades_filtradas"></app-tabla>
</div>
items_filtered_by_polygon($event){
this.oportunidades_filtradas = []
}