代码之家  ›  专栏  ›  技术社区  ›  user2995358

在angular中创建javascript对象时出错

  •  0
  • user2995358  · 技术社区  · 6 年前

    我正在尝试使用javascript代码cors_upload。js here 在我的Angular 9项目中将视频上传到youtube。然而,我得到了一个错误:

    src_assets_js_cors_upload_js__WEBPACK_IMPORTED_MODULE_1__.MediaUploader is not a constructor.
    

    以下是我已经做过的事情:

    • 我已经创建了一个项目并获得了API密钥。
    • 我已经申请了youtube上传权限,用户已经同意了
    • 下载并包括cors_上传。src/assets/js文件夹中的js文件。
    • 包括CORS上传脚本在angular中。json as
      "scripts": [
        "src/assets/js/cors_upload.js"
      ]
      
    • 在代码中,我在cors_upload中导入了函数。js as
    • 下面是我尝试创建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_上传。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) { 
    
    ... 
    
    }
    
    0 回复  |  直到 6 年前
        1
  •  0
  •   user2995358    6 年前

    我发现了问题。我试图从一个服务创建javascript对象。那没用。我将创建移动到组件。现在,我可以创建javascript对象了。

    在声明组件之前,我将MediaUploader声明为一个类型

    declare var MediaUploader any
    

    然后在我的代码中创建对象:

    var uploader = new MediaUploader(...)
    uploader.upload()
    

    我仍然想知道如何从服务创建Javascript对象。可能吗?如果没有,原因是什么?现在,在我的代码中,我可以继续。