2016-12-30 22 views
-1

我正在使用AWS和angular。AWS和angularjs的問題

AWS工作正常,如果我有HTML文件中的代碼,但當我移動到一個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 < - AWS < - myCtrl

預先感謝您!

回答

1

您需要在AWS模塊添加到您的應用程序module,例如

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

編輯: 並經Ephapox指出,糾正你的控制器參數的順序

myApp.controller('myCtrl',['$scope', 'AWS', function myCtrl($scope, AWS){ 
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將不會知道你注入的依賴關係。