奇怪的路线行为angularJS与/?#/

时间:2014-11-07 13:13:08

标签: javascript angularjs

我实际上遇到了AngularJS中路线的问题。 事实上,当我第一次启动我的一个页面时,当前的网址是" http://www.test.com/#/roadmaps/edit"。

当我点击页面上的任何按钮时,我的页面会刷新并为我提供一个新的网址,例如:" 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;
    };

2 个答案:

答案 0 :(得分:1)

您可以使用

进行轮廓绘制
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);
}

答案 1 :(得分:0)

这里的聚会很晚,但这是原因和两个解决方案:ReactJS with React Router - strange routing behaviour on Chrome。原因是任何按钮单击被视为提交,而表单没有提交操作目标。一种解决方案是添加preventDefault事件处理程序。正如我在评论中提到的,我需要做的就是将<button>更改为<span>