20

我刚开始使用 Angular,所以这可能是一个常见的新手错误,但我正在尝试实现以下 url 格式:

http://myapp.localhost/index.html#!/about

我认为哪个应该是 Angular 的默认设置?

这是我的配置:

angular.module('App', []).config(function($routeProvider, $locationProvider, VIEWS_ROOT) {
    $locationProvider.html5Mode(false);
    $locationProvider.hashPrefix = '!';

    // Routing
    $routeProvider.when('/', {templateUrl: './welcome.html', controller: 'WelcomeController'});
   $routeProvider.when('/about', {templateUrl: './about.html', controller: 'AboutController'});
})
.run(function($rootScope) {
    //...
});

在我的 html 中,我有一个简单的锚点,如下所示:

<a href="#!/about">About</a>

但是,当我单击该锚点时,构造的结果 URL 是:

http://myapp.localhost/index.html#/!/about

这显然不符合我的任何路线......有点难倒这里实际发生的事情,或者我做错了什么。我正在虚拟主机下运行我的本地 Apache 实例。mod_rewrite 没有发生任何事情 - 所以看起来 Angular 正在这样做。

4

1 回答 1

22

这是一种设置 hashPrefix 的方法,而不是属性。$locationProvider.hashPrefix('!');

于 2013-02-04T08:55:52.743 回答