2014-06-15 14 views
9

Mam naprawdę dziwny błąd, ustawiłem trasy i kontrolery. Teraz mam tylko pustą stronę bez błędów?AngularJS: ngRoute, w przeciwnym razie nie działa

index.html;

<!DOCTYPE html> 
<html ng-app="RekenTalent" lang="nl"> 
    <head> 
     <title>Rekentalent.nl: Ben jij een talent in Rekenen?</title> 
     <!-- Stylesheets --> 
     <link rel="stylesheet" type="text/css" href="/app/front/assets/stylesheets/style.css"> 
     <!-- AngularJS --> 
     <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.min.js"></script> 
     <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular-route.min.js"></script> 
     <script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular-animate.min.js"></script> 
     <!-- Controllers --> 
     <script src="/app/front/controllers/controller.js"></script> 
     <!-- Router --> 
     <script src="/app/front/router.js"></script> 
    </head> 

    <body ng-view></body> 
</html 

>

Controller.js:

/** 
* RekenTalent 
* 
* Copyright 2014 - Rekentalent.nl 
*/ 
var RekenTalent = angular.module('RekenTalentControllers', []); 

RekenTalent.controller('rekenCtrl', ['$scope', function($scope){ 

}]); 

Router.js:

var RekenTalent = angular.module('RekenTalent', [ 
    'ngRoute', 'RekenTalentControllers' 
]); 

RekenTalent.config(['$routeProvider', function($routeProvider) { 
    $routeProvider. 
    when('/index', { 
     templateUrl: '/templates/index.html', 
     controller: 'rekenCtrl' 
    }). 
    otherwise({ 
     redirect: '/index' 
    }); 
}]); 

I /templates/index.html mówi po prostu 'cześć'. Czy ktoś wie, dlaczego dostaję pustą stronę? Powinien przekierować mnie do /index.html i /index.html powinien używać szablonu /templates/index.html. Co to jest problem i naprawa?

UPDATE:

kiedy idę do/index to działa, więc inaczej param pracy doesn `, dlaczego nie?

+0

Myślę, że to błąd odsyłacza do pliku, proszę podać nam, gdzie jest twój indeks, oraz skrypty kątowe na komputerze. – Milad

+0

Możesz dodać konsolę.log ('load') w twoim kontrolerze, aby sprawdzić, czy term kontroler jest wypalany poprawnie czy nie Ale nadal myślę, że jego błąd odniesienia – Milad

+0

index.html => /app/front/templates/index.html, także po umieszczeniu konsoli .log ("cześć") w kontrolerze nie mam logu w konsoli. – DazDylz

Odpowiedz

16

zmiana redirect do redirectTo

I to lepiej użyć home.template aby uniknąć tego rodzaju problemów, to znaczy pod uwagę:

masz index.html który zawiera swoją całość włączone skrypty, jak kanciasta, jquery, ..., aw tagu body jest ng-view, ok?

Teraz, jeśli masz jakieś szablony, takie jak powitanie lub cokolwiek innego dla indeksu, napisz ten szablon w numerze home.html, OK? Tak:

index.html:

<body ng-app="yourapp"> 
    <div ng-view> 
    </div> 
</body> 

home.html

<div> 
    Welcome, user. This is index. 
    </div> 

Konfiguracja aplikacji:

yourapp.config(function($routeProvider) { 
    $routeProvider 
     .when('/', { 
     templateUrl: 'partials/home.html', 
     controller: 'homeCtrl' 
     }) 
     .otherwise({redirectTo:'/'}); 
} 

I to jest dobra praktyka, aby umieścić wszystkie swoje szablony wewnątrz folderu partials, gdzie folder ojca zawiera index.html podobny do tego

root 
    yourAppFolder 
     1-Assets 
      Css 
      Js 

     2-Partials 
      home.html 
      login.html 

     3-index.html 
2

Znaleziono; przekierowanie powinno być przekierowane do;

var RekenTalent = angular.module('RekenTalent', [ 
    'ngRoute', 'RekenTalentControllers' 
]); 

RekenTalent.config(['$routeProvider', function($routeProvider) { 
    $routeProvider. 
    when('/index', { 
     templateUrl: '/app/front/templates/index.html', 
     controller: 'rekenCtrl' 
    }). 
    otherwise({ 
     redirectTo: '/index' 
    }); 
}]); 
1

mam ten przykładowy kod na przykład:

.config(['$routeProvider', 
function($routeProvider) { 
    console.log('routeando'); 
    //alert('otherwise' + $routeProvider.route); 
    $routeProvider. 
     when('/', {  templateUrl: 'home'}). 
     when('/route1', { templateUrl: 'route1'}). 

     /*Without the next line, redirectTo doesnt work*/ 
     when('/error', { templateUrl: 'error'}). 
     otherwise({  redirectTo: '/error'}); 
}]);  

przeciwnym razie będzie tylko do pracy, jeśli masz już „kiedy” parametr dla tej trasy.

Przepraszam za mój angielski i życzę miłego dnia.

Powiązane problemy