AWS和angularjs的问题

时间:2016-12-30 18:03:12

标签: javascript html angularjs amazon-web-services

我正在使用AWS和angular。

如果我在html文件中有代码,那么AWS工作正常,但是当我移动到js文件时,它不起作用。

我有这段代码:

<html ng-app="myApp">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.1/angular.js"></script>
<script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.43.min.js"></script>
<script src="app.js"></script>
</head>
<body ng-controller="myCtrl">
<div id="results"></div>
<input type="file" id="file-chooser" />
<button id="upload-button">Upload to S3</button>
<button ng-click = "listObjs()">Listar</button>
</body>
</html>

和js:

(function(){
    var myApp = angular.module('myApp', []);   

    myApp.controller('myCtrl',['AWS','$scope', function myCtrl($scope, AWS){
    AWS.config.update({
    .......

我得到的错误是 未知提供商:AWSProvider&lt; - AWS&lt; - myCtrl

提前谢谢!

2 个答案:

答案 0 :(得分:2)

在您的控制器中,依赖注入数组具有$ scope和AWS乱序。

你有:

myApp.controller('myCtrl',['AWS','$scope', function myCtrl($scope, AWS){
AWS.config.update({

应该是:

myApp.controller('myCtrl',['$scope', 'AWS', function myCtrl($scope, AWS){
AWS.config.update({

数组的要点是将您的依赖项显式注册为字符串,以便angular知道它们是什么。您并不总是必须提供数组,但如果您缩小代码角度,则不会知道您注入的依赖项。

答案 1 :(得分:1)

您需要将AWS模块添加到您的应用module,例如

myApp = angular.module('myApp', ['AWS']);   

修改 并且如Ephapox所述,更正控制器参数的顺序

myApp.controller('myCtrl',['$scope', 'AWS', function myCtrl($scope, AWS){