我正在使用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
提前谢谢!
答案 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){