如何解决在angular内创建javascript对象时出错
我正在尝试在Angular 9项目中使用javascript代码cors_upload.js here将视频上传到youtube。但是,我得到一个错误:
src_assets_js_cors_upload_js__WEBPACK_IMPORTED_MODULE_1__.MediaUploader is not a constructor.
这是我已经完成的事情:
- 我已经创建了一个项目并获得了API密钥。
- 我已经请求youtube上传权限,并且用户已授予它
- 下载了cors_upload.js文件并将其包含在src / assets / js文件夹中。
- 在angular.json中将CORS上传脚本包括为
"scripts": [ "src/assets/js/cors_upload.js" ]
- 在代码中,我将cors_upload.js中的函数导入为
- 下面是我的代码,试图创建MediaUploader对象:
var uploader = new ytapi.MediaUploader({ baseUrl: 'https://www.googleapis.com/upload/youtube/v3/videos',file: uFile,token: token,metadata: metadata,params: { part: Object.keys(metadata).join(',') }})
在cors_upload.js中,MediaUploader被声明为构造函数:
/**
* ...
* @constructor
* @param {object} options Hash of options
* @param {string} options.token Access token
* @param {blob} options.file Blob-like item to upload
* @param {string} [options.fileId] ID of file if replacing
* @param {object} [options.params] Additional query parameters
* ...
*/
var MediaUploader = function (options) {
...
}
解决方法
我发现了问题。我试图从服务创建javascript对象。那没有用。我将创作移至组件。现在,我可以创建javascript对象。
在声明组件之前,我将MediaUploader声明为一种类型
declare var MediaUploader any
然后在我的代码中我可以创建对象:
var uploader = new MediaUploader(...)
uploader.upload()
我仍然想知道如何从服务创建Javascript对象。可能吗?如果没有,为什么?现在,在我的代码中,我可以继续。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。