AngularJS路由到静态文件

D00*_*0de 6 html javascript angularjs ngroute

我有一个简单的angularjs应用程序,使用ngRoute模块在html5Mode中进行路由.如何在我的页面上有一些静态文件的链接,而不是通过angular routing mdule拦截它?

这是一个例子:

HTML:

    <head>
        <base href='/'></base>
    </head>
    <body ng-app="crudApp">

    <a href="/">Home</a>
    <a href="/user">User</a>
    <a href="/users.html">users.html</a>

    <div ng-view></div>
Run Code Online (Sandbox Code Playgroud)

JS路由:

$routeProvider
            .when('/', {
                templateUrl: 'app/components/home/homeView.html',
                controller: 'HomeController'

            })
            .when('/user', {
                templateUrl: 'app/components/user/userView.html',
                controller: 'UserController'

            })
            .otherwise({
                redirectTo: '/'
            });
Run Code Online (Sandbox Code Playgroud)

当我点击用户链接时,我会被路由到localhost:8080/user,我的控制器和模板工作正常.当我点击users.html链接时,我会被路由到家,但我想调用一个静态的home.html页面.

nae*_*th7 17

AngularJS文档中,您有3个选项:

Html链接重写

(......)

在如下情况下,链接不会被重写; 相反,浏览器将执行整页重新加载到原始链接.

  • 包含目标元素的链接
    示例:<a href="/ext/link?a=b" target="_self">link</a>
  • 转到其他域的绝对链接
    示例:<a href="http://angularjs.org/">link</a>
  • 以'/'开头的链接导致不同的基本路径
    示例:<a href="/not-my-base/link">link</a>

您可能正在寻找的是第一个例子:

<a href="/users.html" target="_self">users.html</a>
Run Code Online (Sandbox Code Playgroud)