没有#使用哈希!在没有路由器

时间:2017-08-10 17:28:39

标签: javascript angularjs

我需要像angularjs中的代码一样创建自己的路由器,因为我需要使用简单的插件系统动态添加路由。我有这样的导航:

<ul>
    <li><a href="#page1">page1</a></li>
    <li><a href="#page2">page2</a></li>
</ul>

我的控制器看起来像这样:

app.controller('main', function($scope) {
    let set = () => {
        this.panel = location.hash.replace(/^#/, '');
    };

    $(window).on('hashchange', () => {
        $scope.$apply(set);
    });
    set();
});

我将根据控制器面板属性显示不同的面板。

但是当我点击链接时我已#!#page1如何阻止#!#并将#page1作为哈希?或者只是#!/ page1(但不添加路由器),因为当我添加href =&#34; page1&#34;我已经获得了不存在的页面的正常链接(在角度之外)。

1 个答案:

答案 0 :(得分:2)

这就是你需要删除的哈希(#!)。为此,您需要在您的index.html中添加基本标记

<base href="/">

并将@locationProvider html模式设置为true,例如:

angular.module('myApp').config(function ($routeProvider, $locationProvider) {
    $locationProvider.html5Mode(true); //activate HTML5 Mode
});

最后一个#iece(#page1)会在那里,因为你要设置id来遍历那个部分