angularjs的ngRouter对于restful地址是怎么支持的?

<html>
    <head>
        <meta charset="utf-8">
        <title>AngularJS 路由实例</title>
    </head>
    <body ng-app='routingDemoApp' ng-controller="DataTableCtrl">
     
        <h2>AngularJS 路由应用</h2>
        <ul>
            <li><a href="#/">首页</a></li>
            <li><a href="#/computers">电脑</a></li>
            <li><a href="#/printers">打印机</a></li>
            <li><a href="#/blabla">其他</a></li>
        </ul>
         
        <div ng-view></div>
        <script src="https://cdn.bootcss.com/angular.js/1.4.6/angular.min.js"></script>
        <script src="https://apps.bdimg.com/libs/angular-route/1.3.13/angular-route.js"></script>
        <script>
            var app = angular.module('routingDemoApp',['ngRoute']);
            app.config(['$routeProvider', function($routeProvider){
                $routeProvider
                .when('/',{template:'这是首页页面'})
                .when('/computers',{template:'这是电脑分类页面'})
                .when('/printers',{template:'这是打印机页面'})
                .otherwise({redirectTo:'/'});
            }]);
            
            app.controller("DataTableCtrl", function($scope, $http) {
                
            });
        </script>
     
     
    </body>
</html>

如上图所示,使用ngRoute控制页面的显示内容,假设我的地址是http://localhost:8080/ask, 当我点击"打印机"链接后,地址变成了: http://localhost:8080/ask#!/#...,这样的话,就无法进行路由了,当然如果我的页面是http://localhost:8080/ask.html,那是可以正常路由的,那问题来了,angular是怎么支持对restful格式地址的路由的呢?

阅读 2.8k
3 个回答

链接不加 # 用 ng-href 交给 angular 自己处理

访问ask的话,找不到这个路由,默认应该去/ 首页。

restful用ngresouse与前端路由无关 事实是view激活对应的controller然后再运用ngresouse发送http请求,有get save(对应post) remove(对应delete)等方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进