在angular中创建javascript对象时出错
我试图在Angular 9项目中使用javascript代码cors_upload.js将视频上传到youtube。但是,我得到一个错误:在angular中创建javascript对象时出错,javascript,angular,youtube-api,youtube-data-api,Javascript,Angular,Youtube Api,Youtube Data Api,我试图在Angular 9项目中使用javascript代码cors_upload.js将视频上传到youtube。但是,我得到一个错误: src_assets_js_cors_upload_js__WEBPACK_IMPORTED_MODULE_1__.MediaUploader is not a constructor. 以下是我已经做过的事情: 我已经创建了一个项目并获得了API密钥 我已经申请了youtube上传权限,用户已经批准了 在src/assets/js文件夹中下载并包含co
src_assets_js_cors_upload_js__WEBPACK_IMPORTED_MODULE_1__.MediaUploader is not a constructor.
以下是我已经做过的事情:
- 我已经创建了一个项目并获得了API密钥
- 我已经申请了youtube上传权限,用户已经批准了
- 在src/assets/js文件夹中下载并包含cors_upload.js文件
- 在angular.json中包含CORS上载脚本,如下所示
"scripts": [ "src/assets/js/cors_upload.js" ]
- 在代码中,我将cors_upload.js中的函数作为
- 下面是我尝试创建MediaUploader对象的代码:
var uploader=new ytapi.mediawloader({ baseUrl:'https://www.googleapis.com/upload/youtube/v3/videos', 文件:uFile, 令牌:令牌, 元数据:元数据, 参数:{ 部分:Object.keys(元数据).join(“,”) }})
/**
* ...
* @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对象。可能吗?若否,原因为何?现在,在我的代码中,我可以继续。即使它被注释为构造函数,它仍然是一个函数,您是否在不使用“new”的情况下尝试过这个方法?我需要返回一个对象,以便我可以调用其他方法。例如,具有构造函数的函数获取有关要上载的文件的信息,但是,稍后,我需要为要上载的文件调用send方法。请注意,在另一个问题的实际答案范围内提问不会提供新问题所需的可见性。只需创建一个新问题,为其提供完整和相关的上下文(从而使其自包含),并最终将其与初始问题及其相应答案联系起来。