为了账号安全,请及时绑定邮箱和手机立即绑定

重用 Angular 9 组件

重用 Angular 9 组件

森栏 2023-03-24 15:29:06
我有一个文件上传组件,app-file-upload它有一个文件类型和一个文件变量列表。一切正常,直到我想app-file-upload在同一页面上有多个组件。我期望的是,当我单击第一个文件上传按钮时,它会填充第一个列表app-file-upload。然后当我点击第二个文件上传按钮时,上传的文件将进入第二个组件的列表。实际发生的是第二个文件列表将转到第一个组件的列表。就好像第二个组件只是第一个组件的引用。问题:我知道角度服务是作为单例创建的。组件也是??这没有意义,因为要重用组件。还是我做错了什么?
查看完整描述

2 回答

?
FFIVE

TA贡献1797条经验 获得超6个赞

这是一个简单的文件上传组件,可以按您的需要工作。

此链接的演示:https ://angular-upload-csvx.stackblitz.io/

完整代码和额外内容:https://stackblitz.com/edit/angular-upload-csvx

//files.component.ts

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


@Component({

  'templateUrl': './files.component.html',

  'selector': 'app-files'

})


export class FilesComponent {

  handleFileSelect(evt) {

    var files = evt.target.files; // FileList object

    var file = files[0];

  }


}

<!--files.component.html-->

<div>

  <form>

    <div>

      <input type="file" (change)="handleFileSelect($event)">

    </div>

  </form>

</div>

<!--app.component.html-->

<div>

  <app-files></app-files>

  <hr>

  <app-files></app-files>

  <hr>

  <app-files></app-files>  

</div>


查看完整回答
反对 回复 2023-03-24
?
守候你守候我

TA贡献1802条经验 获得超10个赞

我发现了问题。我有一个用于输入类型文件的标签(下面的代码)。我需要做的就是生成一个随机数并分配给的for和label的。idinput


 <label for="file-{{uniqueNumber}}" (click)="handleUploadClick()">

        <th-icon-upload></th-icon-upload>

        {{buttonText}}

    </label>

 <input type="file" id="file-{{uniqueNumber}}" [attr.multiple]="multiple ? '' : null" (change)="handleFileInput($event.target.files)" accept="{{acceptableFiles}}" 

        [attr.disabled]="successFilesCount >= maximumNumberOfFiles ? '' : null" />



查看完整回答
反对 回复 2023-03-24
  • 2 回答
  • 0 关注
  • 189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号