Angularjs ';AWS未定义';在angular中使用aws sdk js时

Angularjs ';AWS未定义';在angular中使用aws sdk js时,angularjs,amazon-web-services,aws-sdk,Angularjs,Amazon Web Services,Aws Sdk,在教程之后,使用angular实现AWS sdk,我从jshint(使用grunt为应用程序提供服务)获得了AWS未定义 我已经用bower install aws sdk js--save安装了sdk,它正确地显示在我的index.html文件中 这是我的控制器: angular.module('myApp') .controller('S3uploadCtrl', function ($scope) { console.log(AWS); $scope.creds = {

在教程之后,使用angular实现AWS sdk,我从jshint(使用grunt为应用程序提供服务)获得了
AWS未定义

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

这是我的控制器:

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);
  }
});

谷歌上没有多少关于这方面的内容。我找到了另一个,我试着去追随,但没有成功。(更改了我的
标记等的顺序)。

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

"globals": {
    "AWS": false
}

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

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

"globals": { "AWS" : false }

“AWS未定义”当您忘记定义js时,会发生此错误, 在“bower安装aws sdk js”之后 您需要在脚本标记中为index.html定义“aws sdk.min.js”和“aws sdk.js”,如


Argh。。。我还以为这行不通呢!浪费了1个小时。非常感谢你的回答!文件位于:\node\u modules\aws sdk\.jshintrc