2017-01-22 63 views
0

我創建了this Plunker並添加了一個簡單的路由。但由於某些原因,路由不起作用。我想在點擊刪除按鈕時重定向到#/ delete,但沒有任何事情發生。當點擊一個錨點標記按鈕時AngularJs路由不工作

的script.js:

var appRoot = angular.module('myNgApp', ['ngRoute', 'ui.bootstrap']); 

appRoot.config([ 
    '$routeProvider', function ($routeProvider) { 
     $routeProvider 
      .when('/', { templateUrl: 'ngIndex.html', controller: 'IndexCtrl' }) 
      .when('/delete', { templateUrl: 'delete.html', controller: 'DeleteCtrl' }) 
      .otherwise({ redirectTo: '/' }); 
    } 
]); 

ngIndex.html:

<a class="btn btn-danger" href="#/delete">Delete</a> 
+0

我已經看到你的代碼只是現在你可以改變的問題,你的努力通過路由打開對話框模式,對嗎?如果它不能通過路由打開對話框模式,請參閱此鏈接http://embed.plnkr.co/kHXK54 –

回答

0

所以,因爲與哈希前綴角1.6路線的改變。所以改爲og「」hashprefix現在是「!」

由於aa077e8,用於$位置哈希爆炸 URL設置默認的哈希前綴已經從空字符串(「」)的感嘆號(「!」)改變。如果您的 應用程序未使用HTML5模式,或者在 不支持HTML5模式的瀏覽器上運行,並且您尚未指定自己的 哈希前綴,則客戶端URL現在將包含!字首。例如,對於 示例,而不是mydomain.com/#/a/b/c,網址將變爲 mydomain.com/#!/a/b/c。

如果你真的想有沒有哈希前綴,那麼你可以通過添加配置塊到你的應用程序恢復 以前的行爲:

appModule.config([「$ locationProvider」,函數($ locationProvider ){
$ locationProvider.hashPrefix('');}]); Source

我做了一個類似的帖子有可能的解決方案: Angular not routing properly. URL is localhost:8081/#!/#pageName

從其他職位:

怎麼辦?
1.設置HTML5mode真正

$locationProvider.html5Mode(true); 

和HTML集基地HTML頭:

<base href="/"> 

最後改變<a ng-href="#pagename">

<a ng-href="pagename"> 

2.回去舊的行爲從1.5 - 手動設置哈希前綴 這將使您的應用按照您的問題期望工作。

app.config(['$locationProvider', function($locationProvider) { 
    $locationProvider.hashPrefix(''); 
}]); 

在您的例子
要看到,這是

$window.location.href = '#/delete'; 

$window.location.href = '#!/delete'; 
相關問題