ng2-file-upload,当使用 *ngFor 循环时,new FileUpload() 不会为附加组件创建新实例

ng2-file-upload, new FileUpload() does not create new instance for an additional component, when looping with *ngFor

我有多种格式,我循环(使用 ngFor)来创建新组件。每个组件都通过构造函数 (new FileUploader()) 实现了 ng2-file-upload。

但是如果我添加一个新的文件并显示出来,在其他组件的uploader上也是added/displayed,应该不是这样的

错过了什么?

https://stackblitz.com/edit/angular-i8oc1r

好的,我将代表 angular 聊天组中帮助过我的人回答这个问题。 (非常感谢!)

问题似乎是,尽管提供了两个不同的空数组

<upload
  *ngFor = "let format of formats"
  [images] = "images ? images : []"
  [format] = format>
</upload>

甚至更好看:

<upload
  [images] = "[]"
  [format] = "'A'">
</upload>

<upload
  [images] = "[]"
  [format] = "'B'">
</upload>

angular 只是引用第二个空数组,而不是创建一个新数组。也许我缺乏经验,但这一点都不直观。

解决方法是,给一个空数组,里面有不同的空数组...

<upload
  *ngFor = "let format of formats; let i = index;"
  [images] = "images[i]"
  [format] = format>
</upload>

asdasd

export class AppComponent  {
  ...
  images = [[],[]];
  ...
}