2015-01-20 10 views
8

Używam serwera Apache do obsługi aplikacji kątowej. To index.html:

<html> 
    <head> 
    <script src="/lib/angular/angular.js"> 
    </head> 
    <script> 
    myapp = angular.module('myapp', []); 

    myapp.controller('indexCtrl', function($scope){ 

      $scope.words = ['It','is','what','it','is'] 
    }); 

    </script> 

    <body ng-app="myapp"> 

     <div ng-controller="indexCtrl"> 
     <div ng-repeat="word in words"> 
      {{word}} 
     </div> 
     </div> 

    </body> 
</html> 

Kiedy uderzył w html z przeglądarki, to pokazuje pustą stronę z tego błędu:

Uncaught Error: [$injector:modulerr] Failed to instantiate module myapp due to: Error: [$injector:nomod] Module 'myapp' is not available!

You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.

Co może być nie tak?

+2

dzieje się tak dlatego, że nie zamykasz tagu skryptu. – Ved

+0

Wow. co za poślizg. dzięki! – moaglee

Odpowiedz

9

Błąd wynika z powielenia wartości w tablicy. Dodałem track by $index wewnątrz ng-repeat, aby rozwiązać ten problem.

DOCS: ng-repeat

kod Modified:

<html> 
    <head> 
    <script src="/lib/angular/angular.js"></script> 
    </head> 
    <script> 
    var myapp = angular.module('myapp', []); 

    myapp.controller('indexCtrl', function($scope){ 

      $scope.words = ['It','is','what','it','is'] 
    }); 

    </script> 

    <body ng-app="myapp"> 

     <div ng-controller="indexCtrl"> 

      <div ng-repeat="word in words track by $index"> 

      {{word}} 

      </div> 
     </div> 

    </body> 
</html> 
+1

Dodałem ścieżkę wg $ index wewnątrz ng-repeat, ponieważ twoja tablica zawiera zduplikowane wartości. – Ved

0

Umieść <script> udział i koniec ciała:

<body ng-app="myapp"> 

     <div ng-controller="indexCtrl"> 
     <div ng-repeat="word in words"> 
      {{word}} 
     </div> 
     </div> 
     <script> 
      myapp = angular.module('myapp', []); 
      myapp.controller('indexCtrl', function($scope){ 
       $scope.words = ['It','is','what','it','is'] 
      }); 
    </script> 
    </body> 

że to dobry practicte w HTML i p articularly w Angular, aby umieścić definicję pliku JS tuż przed końcem body

1

Proszę podać angularjs w ciele.

<script src="/lib/angular/angular.js"> 

Dołącz tę linię do treści. Mam nadzieję, że to zadziała!

Powiązane problemy