首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在角中使用aws-sdk-js时,未定义aws。

在角中使用aws-sdk-js时,未定义aws。
EN

Stack Overflow用户
提问于 2015-10-31 16:00:14
回答 3查看 4.1K关注 0票数 3

教程之后,使用angular实现AWS,我将从jshint获得AWS is not defined (使用grunt为应用程序服务)。

我已经用bower install aws-sdk-js --save安装了sdk,它正确地出现在我的index.html文件中。

这是我的控制器:

代码语言:javascript
复制
angular.module('myApp')
.controller('S3uploadCtrl', function ($scope) {

  console.log(AWS);
  $scope.creds = {
    bucket: 'myBucket',
    accessKey: 'accKey',
    secretKey: 'secKey'
  };

  $scope.upload = function() {
    // Configure The S3 Object
    AWS.config.update({ accessKeyId: $scope.creds.accessKey, secretAccessKey: $scope.creds.secretKey });
    AWS.config.region = 'us-west-2';
    var bucket = new AWS.S3({ params: { Bucket: $scope.creds.bucket } });

    if($scope.file) {
      var params = { Key: $scope.file.name, ContentType: $scope.file.type, Body: $scope.file, ServerSideEncryption: 'AES256' };

      bucket.putObject(params, function(err, data) {
        if(err) {
          // There Was An Error With Your S3 Config
          alert(err.message);
          return false;
        }
        else {
          // Success!
          alert('Upload Done');
        }
      })
      .on('httpUploadProgress',function(progress) {
        // Log Progress Information
        console.log(Math.round(progress.loaded / progress.total * 100) + '% done');
      });
    }
    else {
      // No File Selected
      alert('No File Selected');
    }
  };
  function alert(msg) {
    console.alert(msg);
  }
});

谷歌上并没有太多这方面的内容。我发现了另一个所以问题,我一直试图跟踪它,但没有结果。(更改了<script>标签的顺序等)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-10-31 16:08:15

这是一个JSHint错误。JSHint确保您正在访问已定义的变量,并且不知道AWS全局变量存在et运行时。因此,您需要告诉JSHint这个globa变量是存在的,并且允许您的代码访问这个全局变量(尽管您可能应该将它隐藏在一个角度服务的后面,以使您的代码可测试)。

编辑您的.jshintrc文件(它可能有另一个名称:检查您的构建配置),并添加(或修改)以下规则:

代码语言:javascript
复制
"globals": { "AWS" : false }
票数 5
EN

Stack Overflow用户

发布于 2015-10-31 16:07:54

如果您只是得到一个JSHint错误,这可能是因为AWS没有被识别为一个变量。在项目根目录中创建一个.jshintrc文件,并将此配置放在其中:

代码语言:javascript
复制
"globals": {
    "AWS": false
}
票数 1
EN

Stack Overflow用户

发布于 2019-05-16 06:49:16

'AWS未定义‘当您忘记定义js时会发生此错误,在"bower install aws js“之后,您需要在脚本标记中将"aws-sdk.min.js”和"aws-sdk.js“定义为您的index.html,如下所示

<script src="bower_components/aws-sdk/dist/aws-sdk.min.js"></script> <script src="bower_components/aws-sdk/dist/aws-sdk.js"></script>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33453580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档