我想将进度百分比数据从调用组件传递到MatDialog。使用dialogref或通过在Dialog组件构造函数中注入数据,我只能将变量设置为初始值。但是该值不会更新,因为它是在调用组件内部更新的。
想法是在对话框中有一个带有百分比的进度条,以阻止用户在上载/下载期间的操作。
答案 0 :(得分:1)
您可以使用shared service
或仅在要从中启动对话框的模块中创建service
,在服务中以模态形式创建Observable
和Subject
当前进度应该收听Observable
,并在Subject
上使用.next(progressValue)
来更新值。
您可以了解更多here,这与父级和子级有关,但是如果对话框与组件/服务位于同一模块中,那么应该没有任何问题。
答案 1 :(得分:0)
在getObject函数中使用httpdownloadprogress可以检查下载进度
.on('httpDownloadProgress',(progress) => {
// shows file download progress
});
这是包括下载功能在内的整个代码
import { config, SecretsManager, S3 , CognitoIdentityCredentials} from 'aws-sdk';
const bucket = new S3({
accessKeyId: <accessKeyId>,
secretAccessKey: <secretAccessKey>,
region: <region>
});
const params = {
Bucket: <BucketName>,
Key: <fileName>,
};
bucket.getObject(params, (err:any, data:any) =>{
if (err) {
// shows AWS s3 error
}else{
// response of binary data
}
}).on('httpDownloadProgress',(progress) => {
// shows file download progress
});