2015-09-06 23 views
5

Pracowałem trochę z Angular i próbowałem wdrożyć proste trasowanie. Mam podstawowy kod HTML, który zawiera odniesienie do wszystkich wymaganych skryptów i znacznika ng-view.ng-view nie wyświetli szablonu

Z jakiegoś powodu, po załadowaniu strony szablon nie jest wyświetlany w lokalizacji ng-view. Dlaczego to się nie pokazuje i jak to naprawić?

<html> 
<head> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular-route.js"></script> 
    <script src="routCtrl.js"></script> 
</head> 
<body ng-app='ngRouteTest'> 
    <div ng-view></div> 
</body> 

a plik skryptu:

var ngRouteTest = angular.module('ngRouteTest',['ngRoute']); 
ngRouteTest.config(function($routeProvider){ 
    $routeProvider 
.when('/', 
    {templateUrl : '/routView1.html'}) 
}); 
+0

Co konsola deweloper powiedzieć? Wszelkie błędy/ostrzeżenia? –

+0

Wystąpił następujący błąd: "Nie można załadować szablonu". –

+0

Problem polega na tym, że podajesz błędną ścieżkę do pliku html. gdzie jest twój routView1.html? Jak wygląda twoja struktura folderów? –

Odpowiedz

0

Po pierwsze, musisz uruchomić swój kod z serwera, aby przetestować go lokalnie użyj http-server, który jest naprawdę łatwy do przygotowania.

Potem trzeba będzie zmienić ścieżkę templateUrl od:

{templateUrl : '/routView1.html'} 

do:

{templateUrl : './routView1.html'} 
2

Musisz przekierować do tej strony tak, że routing przyjdzie wiedzieć, która strona do renderowania wewnątrz dyrektywy ng-view.

Istnieje wiele sposobów, aby to zrobić.

  1. Zdefiniuj jeszcze jeden inny sposób przekierowania do /.

    $routeProvider.otherwise({redirectTo: '/'}) 
    
  2. Dodaj kotwicę do strony, która będzie przekierowywać do /.

    <body ng-app='ngRouteTest'> 
        <a href="#/">Home Page</a> 
        <div ng-view></div> 
    </body> 
    
  3. Mając na domyślny adres URL strony w <head> tagu.

    <base href="/"/> 
    
+0

Dzięki za odpowiedź, żadna z opcji nie pomogła. Widzę routing wstępnie utworzony po dodaniu "inaczej", ale widok ng nie wczytuje szablonu. Przechodząc do konsoli, jak wskazano powyżej, pojawia się następujący błąd: "Nie można załadować szablonu". Zakładam, że problem polega na tym, że pliki są przechowywane lokalnie i powodują problemy bezpieczeństwa - uruchomię serwer i zobaczę, czy otrzymam inny wynik. –

+1

potrzebujesz hosta swój kod na serwerze .. w przeciwnym razie szablon nie będzie działać. –

0

Po uruchomieniu hosta lokalnego i psują kod stamtąd to działało perfekcyjnie.

Problem dotyczył zabezpieczeń związanych z chromem podczas wykonywania lokalnych wywołań ajaxowych.

Więc jeden ma ten problem, należy wykonać jedną z następujących czynności:

1. Wyłącz internetowej bezpieczeństwa w Chrome. 2. Uruchomić lokalnego hosta do przetestowania.

Powiązane problemy