Angularjs onChanges不使用组件绑定

Angularjs onChanges不使用组件绑定,angularjs,Angularjs,我有一个组成部分: @Component('Umbrella', { selector: 'attachment-list', templateUrl: '/AttachmentListComponent/AttachmentList.html', bindings: { mediaIds: '<', } }) public $onChanges() { console.log(this.mediaIds); } 以及将上载文件的i

我有一个组成部分:

@Component('Umbrella', {
    selector: 'attachment-list',
    templateUrl: '/AttachmentListComponent/AttachmentList.html',
    bindings: {
        mediaIds: '<',
    }
})

public $onChanges() {
   console.log(this.mediaIds);
}
以及将上载文件的id推送到
mediaIds
数组的方法

private setMediaIds(mediaId: Guid) {
    this.mediaIds.push(mediaId);
}
模板:

<attachment-list 
    media-ids='vm.mediaIds'
></attachment-list>

上载的文件id已正确添加到
caseFlowComponent
中的
this.mediaIds
数组中,但
附件列表中未调用
$onChanges


我认为更新组件绑定时,
$onChanges
应该可以工作。

$onChanges
比较引用。你的选择是:

  • 始终创建新阵列
  • 添加另一个输入以触发更改
  • 手动运行手表

哪个角度版本?AngularJS版本1.7.8参考是否不同?在CaseFlowComponent中,mediaIds数组有25个对象,AttachmentListComponent有24个对象。Hm看起来像是在将对象推入MediaID数组之前清除该数组会触发onChanges。有一个数组,它首先有24个项目,然后是25个项目。如果你把ng repeat--u放进去,你会看到这个项被添加了,但这不会触发onChanges,因为它仍然是同一个数组。啊,我明白了。参考文献相同,但内容不同。
<attachment-list 
    media-ids='vm.mediaIds'
></attachment-list>