Angularjs: Error: [ng: areq] El argumento 'HomeController' no es una función, quedó indefinido

Esta es mi demostración usando angularjs, para crear un archivo de servicio y agregar servicio a un controlador.

Tengo dos problemas con mi demo:

Una es cuando pongo<script src="HomeController.js"> antes de<script src="MyService.js"> Me sale este error

Error: [ng: areq] El argumento 'HomeController' no es una función, no se definió

El otro es cuando pongo<script src="MyService.js"> antes de<script src="HomeController.js"> Obtuve el siguiente error,

Error: [$ inyector: unpr] Proveedor desconocido: MyServiceProvider <- MyService

Mi fuente:

ExpedienteIndex.html:

<!DOCTYPE html>
<html >
    <head lang="en">…</head>
    <body ng-app="myApp">
        …
        <div ng-controller="HomeController">
            <div ng-repeat="item in hello">{{item.id + item.name}}</div>
        </div>

        <script src="Scripts/angular.js"></script>
        <script src="Scripts/angular-route.js"></script>

        <!-- App libs -->
        <script src="app/app.js"></script>    
        <script src="app/services/MyService.js"></script>
        <script src="app/controllers/HomeController.js"></script>
    </body>
</html>

ExpedienteHomeController.js:

(function(angular){
    'use strict';

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

    myApp.controller('HomeController',function($scope,MyService){    
        $scope.hello=[];
        $scope.hello = MyService.getHello();
    });
})(window.angular);

ExpedienteMyService.js:

(function(angular){
    'use strict';

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

    myApp.service('MyService', function () {
        var hello =[  {id:1,name:'cuong'},
            {id:2,name:'nguyen'}];
        this.getHello = function(){
            return hello;
        };
    });

})(window.angular);

Respuestas a la pregunta(24)

Su respuesta a la pregunta