[英]Strange route behaviour angularJS with /?#/
我實際上在AngularJS中遇到路由問題。 實際上,當我第一次啟動一個頁面時,當前的URL是“ http://www.test.com/#/roadmaps/edit ”。
當我單擊頁面上的任何按鈕時,頁面都會刷新並為我提供一個新的URL,例如:“ http://www.test.com/?#/roadmaps/edit ”和“?” 之前 ”#”。
因此,每次我在頁面中填寫不同的輸入並單擊一個按鈕時,第一次刷新(有問題...)並顯示“?” 符號出現在URL中。
你有想法嗎 ?
這是我實際的路由功能:
function config($routeProvider) {
$routeProvider.
when('/roadmaps/edit', {
templateUrl: 'partials/roadmap_edit.html',
controller: 'RoadMapEditCtrl'
}).
when('/roadmaps/edit/:id', {
templateUrl: 'partials/roadmap_edit.html',
controller: 'RoadMapEditCtrl'
})
}
第一行用於添加路線圖,第二行用於修改。
你能幫助我嗎 ?
謝謝前進
編輯:
這是導致此問題的按鈕之一:
<li>
<button style="margin-top:10px;" ng-click="selectAll()">Tout {{selectionner}}
</button>
</li>
而selectAll()函數:
var isSelectedJour = false;
$scope.selectAll = function () {
if (isSelectedJour) {
$scope.selectionner = "cocher";
} else {
$scope.selectionner = "décocher";
}
isSelectedJour = !isSelectedJour;
$scope.mo = isSelectedJour;
$scope.tu = isSelectedJour;
$scope.we = isSelectedJour;
$scope.th = isSelectedJour;
$scope.fr = isSelectedJour;
$scope.sa = isSelectedJour;
$scope.su = isSelectedJour;
};
嗨,您可以使用
function config($routeProvider,$locationProvider) {
$routeProvider.
when('/roadmaps/edit', {
templateUrl: 'partials/roadmap_edit.html',
controller: 'RoadMapEditCtrl'
}).
when('/roadmaps/edit/:id', {
templateUrl: 'partials/roadmap_edit.html',
controller: 'RoadMapEditCtrl'
});
$locationProvider.html5Mode(true);
}
到這里參加聚會很晚,但這是原因和兩個解決方案: 帶React Router的ReactJS-Chrome上的奇怪路由行為 。 原因是任何按鈕單擊都被視為提交,並且表單沒有提交操作目標。 一種解決方案是添加preventDefault事件處理程序。 正如我在評論中指出的那樣,要解決此問題, <button>
將<button>
更改為<span>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.