2016-04-29 38 views
2

我採用了棱角分明1.5以下三個文件的應用程序:角將不會加載我的服務模塊

app.js

angular.module('myApp', ['ngRoute', 'myApp.service']) 
    .controller('AppController', AppController); 

AppController.$inject = ['$scope', 'GreeterService']; 

function AppController($scope, GreeterService) { 
    $scope.greeting = GreeterService.greet("World"); 
} 

service.js

angular.module('myApp.service', []) 
.factory('GreeterService', function() { 
    return { 
     salutation: 'Hello', 
     greet: function(name) { 
      return this.salutation + ' ' + name + '!'; 
     } 
    }; 
}); 

和索引.html

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title></title> 
    <link rel="stylesheet" href=""> 

</head> 
<body> 
    <header> 

    </header> 

    <main ng-app='myApp'> 
     <div ng-controller="AppController"> 
      {{ greeting }} 
     </div> 
    </main> 

    <footer> 
     <script src="libs/angular.js" charset="utf-8"></script> 
     <script src="libs/angular-route.min.js" charset="utf-8"></script> 
     <script src="js/app.js" charset="utf-8"></script> 
    </footer> 
</body> 
</html> 

我無法獲得ap p正確加載,我不知道爲什麼。 app.js和service.js位於同一個目錄中。我爲這兩個模塊創建了模塊,我將myApp.service注入到myApp的依賴項中,myApp.service定義了一個返回要用作單例的對象的工廠,並且所有名稱都匹配。我在控制檯中收到的錯誤告訴我myApp.service無法加載,因爲它不可用。 myApp和myApp.service正確地使用了DI,據我所知,我不認爲它是控制器,因爲它甚至沒有那麼遠。我真的不明白問題所在,我希望得到一些幫助。

+1

您是否在'index.html'內添加了'service.js'文件的鏈接? –

+0

不,但我有另一個項目,我做了同樣的事情,現在我正在嘗試做的事情,我沒有src服務文件,它工作得很好。我確實嘗試添加它,並使應用程序正常工作,但我不明白爲什麼當模塊加載程序應該處理該問題時需要這樣做。 – redeagle47

+0

如果你對服務有一些期望,它不會工作。 –

回答

2

您還沒有index.html

<!DOCTYPE html> 

</header> 

<main ng-app='myApp'> 
    <div ng-controller="AppController"> 
     {{ greeting }} 
    </div> 
</main> 

<footer> 
    <script src="libs/angular.js" charset="utf-8"></script> 
    <script src="libs/angular-route.min.js" charset="utf-8"></script> 
    <script src="js/app.js" charset="utf-8"></script> 
    <script src="js/service.js" charset="utf-8"></script> 
</footer> 

添加有你的服務的定義service.js參考

+0

感謝您的回答,我不知道這是必要的,因爲我的構建過程隱藏了其他項目的服務文件連接到應用程序文件的事實。因爲這個原因,它被鏈接到html中,這就是爲什麼另一個項目起作用了,而這個不是。謝謝您的幫助! – redeagle47