簡體   English   中英

單擊錨標記按鈕時,AngularJs路由不起作用

[英]AngularJs routing not working when clicked on an anchor tag button

我創建了這個Plunker並添加了一個簡單的路由。 但是由於某種原因,路由無法正常工作。 單擊刪除按鈕時,我想重定向到#/ delete,但是什么也沒有發生。

的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>

因此,這是因為使用哈希前綴更改了1.6號角路由。 因此,改為og“”,哈希前綴現在為“!”。

由於aa077e8,用於$ location hash-bang URL的默認哈希前綴已從空字符串('')更改為bang('!')。 如果您的應用程序不使用HTML5模式或正在不支持HTML5模式的瀏覽器上運行,並且您未指定自己的哈希前綴,則客戶端URL現在將包含! 字首。 例如,URL將變為mydomain.com/#!/a/b/c,而不是mydomain.com/#/a/b/c。

如果您實際上不希望使用哈希前綴,則可以通過向應用程序中添加配置塊來恢復以前的行為:

appModule.config([['$ locationProvider',function($ locationProvider){
$ locationProvider.hashPrefix( ''); }]); 資源

我在類似的文章中提出了可能的解決方案: 角度不正確。 URL是localhost:8081 /#!/#pageName

從另一篇文章:

該怎么辦?
1.將HTML5mode設置為true

$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';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM