2017-04-02 68 views
0

我有下面的代碼:AngularJS始終路由到主

var app = angular.module('ForclazApp', ['ngRoute']); 

app.config(function($routeProvider){ 
    $routeProvider 
     .when("/", { 
      templateUrl: "partials/header.html" 
     }) 
     .when("/motos", { 
      templateUrl: "partials/motos.html" 
     }) 
     .when("/repuestos", { 
      templateUrl: "partials/repuestos.html" 
     }) 
     .when("/taller", { 
      templateUrl: "partials/taller.html" 
     }) 
     .when("/blog", { 
      templateUrl: "partials/blog.html" 
     }) 
     .when("/contacto", { 
      templateUrl: "partials/contacto.html" 
     }) 
     .otherwise({ 
      redirectTo: '/' 
     }); 
}); 

不要緊,在您鏈接點擊,它總是重定向到了header.html模板。我正在使用AngularJS 1.6.3。 控制檯日誌不會顯示任何錯誤。

菜單的鏈接:

<ul class="nav navbar-nav navbar-right"> 
    <li class="nav-li"><a href="#/" class="nav-link">Inicio </a></li> 
    <li class="nav-li"><a href="#/motos" class="nav-link">Motos </a></li> 
    <li class="nav-li"><a href="#/repuestos" class="nav-link">Repuestos </a></li> 
    <li class="nav-li"><a href="#/taller" class="nav-link">Taller </a></li> 
    <li class="nav-li"><a href="#/blog" class="nav-link">Blog </a></li> 
    <li class="nav-li"><a href="#/contacto" class="nav-link">Contacto </a></li> 
</ul> 

回答

0
.otherwise({ 
     redirectTo: '/' 
    }); 

基本上是說,如果沒有其他的選擇匹配到的路由/。你的情況是主要的。您的.when(..支票與您希望的方式不符。

在您的HTML。刪除/從您的所有鏈接。所以它應該看起來像這樣:

<li class="nav-li"><a href="#contacto" class="nav-link">Contacto </a></li> 

它將以您希望的方式匹配它。

+0

我刪除了。否則句子,我已經改變了HREF刪除「/」字符,但延續了同樣的問題 –

+2

@MarceloForclaz原因是因爲您的網址,可以在你的網址中有'#!'對嗎? – Akashii

+0

是的!那就是問題所在! (!#)我已經將AngularJS的版本更改爲1.5.x,並且完美地工作。感謝所有。我認爲如果我通過「#!」在鏈接中更改「#」它也可以正常工作。 –