[英]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.