精华内容
下载资源
问答
  • 原文链接:...下面这篇文章主要给大家介绍了关于vue如何不通过路由直接获取url中参数的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。前言众所周知vue中使用路由的方式设置url参数,但是这种方式...

    原文链接:http://blog.csdn.net/zhangwenwu2/article/details/77507381

    通过url传递参数是我们在开发中经常用到的一种传参方法,但通过url传递后改如果获取呢?下面这篇文章主要给大家介绍了关于vue如何不通过路由直接获取url中参数的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

    前言

    众所周知vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的。

    相对来说,在某些情况下直接在url后面拼接?mid=100的方式传递参数更灵活,你不需要设置路由,只需要在url后拼接参数即可,但是这种方式就需要通过javascript获取并提取url中的参数,通过传统的方式直接在页面中获取是行不通的了,因为vue中是无法通过location.search()来获取url问号之后的内容的。

    当然,这个问题也有解决方法,就是把获取参数的脚本代码注册成全局方法就可以了。下面话不多说了,来一看看详细的方法示例吧。

    示例代码

    第一步:创建utils.js文件,并保存到项目根目录

    1
    2
    3
    4
    5
    export default{
     getUrlKey:function(name){
      return decodeURIComponent((new RegExp('[?|&]'+name+'='+'([^&;]+?)(&|#|;|$)').exec(location.href)||[,""])[1].replace(/\+/g,'%20'))||null;
     }
    }

    第二步:在主js方法(main.js)中注册全局方法

    1
    2
    3
    import utils   from './utils'    //获取url参数
     
    Vue.prototype.$utils=utils   //注册全局方法

    第三步:vue文件中引用方法

    1
    let channel=this.$utils.getUrlKey("channel")

    展开全文
  • 当前页面 Vue如何获取当前页面的url,获取路由地址 完整url可以用window.location.href 路由路径可以用this.$route.path 路由路径参数this.$route.params例如:/user/:id → /user/2044011030 → this.$route....

    当前页面 Vue如何获取当前页面的url,获取路由地址


    完整url可以用 window.location.href
    路由路径可以用 this.$route.path
    路由路径参数 this.$route.params 例如:/user/:id → /user/2044011030 → this.$route.params.id
    路由查询参数 this.$route.query 例如:/user/search?name=sf → this.$route.query.name

    展开全文
  • 今天小编就为大家分享一篇Laravel 之url参数,获取路由参数的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 本系列探寻AngularJS的路由机制,在WebStorm下开发。主要包括: ...● 路由URL格式   AngularJS路由系列包括: 1、AngularJS路由系列(1)--基本路由配置 2、AngularJS路由系列(2)--刷新、查看

    本系列探寻AngularJS的路由机制,在WebStorm下开发。主要包括:

     

    ● 刷新路由
    ● 查看当前路由以及所有路由
    ● 路由触发事件
    ● 获取路由参数

    ● 路由的resolve属性
    ● 路由URL格式

     

    AngularJS路由系列包括:

    1、AngularJS路由系列(1)--基本路由配置
    2、AngularJS路由系列(2)--刷新、查看路由,路由事件和URL格式,获取路由参数,路由的Resolve
    3、AngularJS路由系列(3)-- UI-Router初体验
    4、AngularJS路由系列(4)-- UI-Router的$state服务、路由事件、获取路由参数
    5、AngularJS路由系列(5)-- UI-Router的路由约束、Resolve属性、路由附加数据、路由进入退出事件
    6、AngularJS路由系列(6)-- UI-Router的嵌套State

     

    项目文件结构

     

    node_modules/

    public/
    .....app/
    ..........bower_components/
    ...............toastr/
    ....................toastr.min.css
    ....................toastr.min.js
    ...............jquery/
    ....................dist/
    .........................jquery.min.js
    ...............angular/
    ....................angular.min.js
    ...............angular-ui-router/
    ....................release/
    .........................angular-ui-router.min.js
    ...............angular-route/
    .........................angular-route.min.js
    ..........controllers/
    ...............HomeController.js
    ...............AllSchoolsController.js
    ...............AllClassroomsController.js
    ...............AllActivityiesController.js
    ...............ClassroomController.js
    ...............ClassroomSummaryController.js
    ...............ClassroomMessageController.js
    ..........css/
    ...............bootstrap.cerulean.min.css
    ..........filters/
    ...............activityMonthFilter.js
    ..........services/
    ...............dataServices.js
    ...............notifier.js
    ..........templates/
    ...............home.html
    ...............allSchools.html
    ...............allClassrooms.html
    ...............allActivities.html
    ...............classroom.html
    ...............classroomDetail.html
    ...............classroom_parent.html
    ..........app.js
    .....index.html
    .....favicon.ico
    server/
    .....data/
    .....routes/
    .....views/
    .....helpers.js
    package.json
    server.js

     

    刷新路由

     

    有时候我们需要刷新路由而不是整个页面。该如何做呢?ngRoute这个module为我们准备了$route服务的reload()方法可以实现。

     

    ■ HomeController.js, 添加刷新路由功能,$route.reload

     

    复制代码
    (function(){
        angular.module('app')
            .controller('HomeController',['dataService','notifier', '$route', '$log', HomeController]);
            
        function HomeController(dataService, notifier, $route, $log){
            var vm = this;
            vm.message = 'Welcome to School Buddy!';
            
            //重新刷新路由
            vm.refresh = function(){
                $route.reload();
            }
            
            dataService.getAllSchools()
                .then(function(schools){
                    vm.allSchools = schools;
                    vm.schollCount = schools.length;
                })
                .catch(showError);
                
                
            dataService.getAllClassrooms()
                .then(function(classroom){
                    vm.allClassrooms = classrooms;
                    vm.classroomCount = classrooms.length;
                })
                .catch(showError);
                
            dataService.getAllActivities()
                then(function(activities)){
                    vm.allActivities = activities;
                    vm.activityCount = activities.length;
                }
                ...
        }
    }());
    复制代码

     

    ■ home.html, 添加刷新路由的按钮


    {{home.message}}
    {{home.schoolCount}}
    {{home.activityCount}}

    <button ng-click="home.refresh()">刷新</button>

     

    当点击"刷新"按钮,刷新的只是路由,不是整个页面。

     

    查看当前路由以及所有路由

     

    $route服务提供了current和routes属性。

     

    ■ HomeController.js, 查看当前路由以及所有路由,使用$route的current和routes属性

     

    复制代码
    (function(){
        angular.module('app')
            .controller('HomeController',['dataService','notifier', '$route', '$log', HomeController]);
            
        function HomeController(dataService, notifier, $route, $log){
            var vm = this;
            vm.message = 'Welcome to School Buddy!';
            
            //重新刷新路由
            vm.refresh = function(){
                $log.debug($route.current);
                $log.debut($route.routes);
                $route.reload();
            }
            
            dataService.getAllSchools()
                .then(function(schools){
                    vm.allSchools = schools;
                    vm.schollCount = schools.length;
                })
                .catch(showError);
                
                
            dataService.getAllClassrooms()
                .then(function(classroom){
                    vm.allClassrooms = classrooms;
                    vm.classroomCount = classrooms.length;
                })
                .catch(showError);
                
            dataService.getAllActivities()
                then(function(activities)){
                    vm.allActivities = activities;
                    vm.activityCount = activities.length;
                }
                ...
        }
    }());
    复制代码

     

    $route.current相关的如下:

     

    $route.routes相关如下:

     

    路由触发事件

     

    $route服务提供以下几个事件:

    ● $routeChangeStart 
    ● $routeChangesSuccess
    ● $routeChangeError
    ● $routeUpdate
    使用$on来调用事件

     

    这些事件是在路由发生变化、路由成功、路由异常、路由更新时被触发。谁来做这些事件的载体呢?我们可以使用$on方法把这些事件注册到$rootScope上去,这样,在全局范围内触发这些事件。

     

    ■ app.js,为$rootScope添加路由事件

     

    复制代码
    (function(){
        var app = angular.module('app', ['ngRoute']);
        
        app.config(['$logProvider','$routeProvider', function($logProvider,$routeProvider){
            $logProvider.debugEnabled(true);
            
            $routeProvider
                .when('/',{
                    controller: 'HomeController' ,
                    controllerAs: 'home',
                    templateUrl: '/app/templates/home.html'
                })
                .when('/schools',{
                    controller: 'AllSchoolsController',
                    controllerAs: 'schools',
                    templateUrl: '/app/templates/allSchools.html',
                    caseInsensitiveMatch: true
                })
                .when('/classrooms/:id',{
                    controller: 'AllClassroomsController',
                    controllerAs: 'classrooms',
                    templateUrl: '/app/templates/allClassrooms.html',
                    resolve:{
                        promise: function(){
                            throw 'error transitioning to classrooms';
                        }
                    }
                })
                .when('/activities',{
                    controller: 'AllActivitiesController',
                    controllerAs: 'activities',
                    templateUrl: '/app/templates/allActivities.html'
                })
                .otherwise('/');
        }]);
        
        app.run(['$rootScope', '$log', function($rootScope, $log){
            //通过$on为$rootScope添加路由事件
            $rootScope.$on('$routeChangeSuccess',function(event, current, previous){
                $log.debug('successfully changed routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
            });
            
            $rootScope.$on('$routeChangeError', function(event, current, previous, rejection){
                $log.debug('error changing routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
                $log.debug(rejection);
            });
        }]);
    }());
    复制代码

     

    以上,使用resolve在controller初始化之前定义一个promise方法故意抛出一个异常。


    在localhost:3000/#/下刷新浏览器,即触发了$rootScope的$routeChangeSuccess事件。

     

    可见,event用来存放当前触发事件;current用来存放当前路由,previous用来存放上一个路由。

     

    清空控制台记录,点击导航栏上的Activities

     

    previous显示了上一个路由。

     

    清空控制台记录,点击导航栏上的Classroom,即我们故意在该路由中设置了一个异常。

     

    获取路由参数

     

    有时候我们需要获取路由中的参数,ngRoute为我们提供了$routeParams服务。

     

    .when('/classrooms/:id',{

    })

     

    在控制器中大致这样:

     

    function ClassroomController($routeParams){
        var classroomID = $routeParams.id;
        //使用classroomID获取相关Classroom
    }

     

    ■ app.js,针对Classroom添加一个带参数的路由

     

    复制代码
    (function(){
        var app = angular.module('app', ['ngRoute']);
        
        app.config(['$logProvider','$routeProvider', function($logProvider,$routeProvider){
            $logProvider.debugEnabled(true);
            
            $routeProvider
                .when('/',{
                    controller: 'HomeController' ,
                    controllerAs: 'home',
                    templateUrl: '/app/templates/home.html'
                })
                .when('/schools',{
                    controller: 'AllSchoolsController',
                    controllerAs: 'schools',
                    templateUrl: '/app/templates/allSchools.html',
                    caseInsensitiveMatch: true
                })
                .when('/classrooms/:id',{
                    controller: 'AllClassroomsController',
                    controllerAs: 'classrooms',
                    templateUrl: '/app/templates/allClassrooms.html'
                })
                .when('/activities',{
                    controller: 'AllActivitiesController',
                    controllerAs: 'activities',
                    templateUrl: '/app/templates/allActivities.html'
                })
                .when('/classrooms/:id',{
                    templateUrl: '/app/templates/classroom.html',
                    controller: 'ClassroomController',
                    controllerAs: 'classroom'
                })
                .otherwise('/');
        }]);
        
        app.run(['$rootScope', '$log', function($rootScope, $log){
            //通过$on为$rootScope添加路由事件
            $rootScope.$on('$routeChangeSuccess',function(event, current, previous){
                $log.debug('successfully changed routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
            });
            
            $rootScope.$on('$routeChangeError', function(event, current, previous, rejection){
                $log.debug('error changing routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
                $log.debug(rejection);
            });
        }]);
    }());
    复制代码

     

    ■ ClassroomController.js

     

    复制代码
    (function(){
        angular.module('app',[])
            .controller('ClassroomController', ['dataService','notifier', '$routeParams', ClassroomController]);
            
        function ClassroomController(dataService, notifier, $routeParams){
            var vm = this;
            
            dataService.getClassroom($routeParams.id)
                .then(function(classroom){
                    vm.currentClassroom = classroom;
                })
                .catch(showError);
                
            function showError(message){
                notifier.error(message);
            }
        }
    }());
    复制代码

     

    在浏览器中输入localhost:3000/#/classrooms/1

     

    ■ app.js,针对Classroom添加带更多参数的路由

     

    复制代码
    (function(){
        var app = angular.module('app', ['ngRoute']);
        
        app.config(['$logProvider','$routeProvider', function($logProvider,$routeProvider){
            $logProvider.debugEnabled(true);
            
            $routeProvider
                .when('/',{
                    controller: 'HomeController' ,
                    controllerAs: 'home',
                    templateUrl: '/app/templates/home.html'
                })
                .when('/schools',{
                    controller: 'AllSchoolsController',
                    controllerAs: 'schools',
                    templateUrl: '/app/templates/allSchools.html',
                    caseInsensitiveMatch: true
                })
                .when('/classrooms/:id',{
                    controller: 'AllClassroomsController',
                    controllerAs: 'classrooms',
                    templateUrl: '/app/templates/allClassrooms.html'
                })
                .when('/activities',{
                    controller: 'AllActivitiesController',
                    controllerAs: 'activities',
                    templateUrl: '/app/templates/allActivities.html'
                })
                .when('/classrooms/:id',{
                    templateUrl: '/app/templates/classroom.html',
                    controller: 'ClassroomController',
                    controllerAs: 'classroom'
                })
                .when('/classroom/:id/detail/:month?',{
                    templateUrl: '/app/templates/classroomDetail.html',
                    controller: 'ClassroomController',
                    controllerAs: 'classroom'
                })
                .otherwise('/');
        }]);
        
        app.run(['$rootScope', '$log', function($rootScope, $log){
            //通过$on为$rootScope添加路由事件
            $rootScope.$on('$routeChangeSuccess',function(event, current, previous){
                $log.debug('successfully changed routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
            });
            
            $rootScope.$on('$routeChangeError', function(event, current, previous, rejection){
                $log.debug('error changing routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
                $log.debug(rejection);
            });
        }]);
    }());
    复制代码

     

    ■ ClassroomController.js

     

    复制代码
    (function(){
        angular.module('app',[])
            .controller('ClassroomController', ['dataService','notifier', '$routeParams', ClassroomController]);
            
        function ClassroomController(dataService, notifier, $routeParams){
            var vm = this;
            
            vm.month = $routeParams.month;
            
            dataService.getClassroom($routeParams.id)
                .then(function(classroom){
                    vm.currentClassroom = classroom;
                    
                    //判断路由中是否有month这个参数
                    if($routeParams.month){
                        //集合或数组是否为空
                        if(classroom.activities.length > 0){
                            vm.timePeriod = dataService.getMonthName($routeParams.month);
                        } else {
                            vm.timePeriod = 'No activities this month';
                        }
                    } else {
                        vm.timePeriod = 'All activities';
                    }
                    
                })
                .catch(showError);
                
            function showError(message){
                notifier.error(message);
            }
        }
    }());
    复制代码

     

    ■ AllActivitiesController.js

     

    复制代码
    (function(){
        angular.module('app')
            .controller('AllActivitiesController', ['dataService', 'notifier', '$location', AllActivitiesController]);
            
        function AllActivitiesController(dataService, notifier, $location){
            var vm = this;
            
            vm.seletedMonth = 1;
            
            
            //搜索过滤
            vm.search = function(){
                var classroom_detail_url = '/classrooms/' + vm.selectedClassroom.id + '/detail/' +vm.seletedMonth;
                $location.url(classroom_detail_url);
            };
            
            dataService.getAllClassrooms()
                .then(function(classrooms){
                    vm.allClassrooms = classroom;
                    vm.seletedClassroom = classrooms[0];
                })
                .catch(showError);
                
            dataService.getAllActivities()
                .then(function(activities)){
                    vm.allActivities = activities;
                }
                .catch(showError);
                
            function showError(message){
                notifier.error(message);
            }
        }
    }());
    复制代码

     

    可见,使用$location.url(route)方法可以轻松转到任何路由。

     

    路由的Resolve属性

     

    在配置路由的时候有一个Resolve属性,接受一个Object对象,对象的每一个属性接收一个函数,resolve中的事件发生在controller初始化之前,最终也将被注入到controller中。

     

    复制代码
    .when('/activities', {
        controller: 'AllActivitiesController',
        controllerAd: 'activities',
        templateUrl: '/app/tempaltes/allActivities.html',
        resolve: {
            activities: function(dataService){
                return dataService.getAllActivities();
            }
        }
    })
    复制代码

     

    以上,dataService.getAllActivities方法返回一个promise,必须要被resolved之后才会转到相应的视图页。接着,activities可以被注入到AllActivitiesController中。

     

    ■ app.js, 在/activities路由下加上resolve属性

     

    复制代码
    (function(){
        var app = angular.module('app', ['ngRoute']);
        
        app.config(['$logProvider','$routeProvider', function($logProvider,$routeProvider){
            $logProvider.debugEnabled(true);
            
            $routeProvider
                .when('/',{
                    controller: 'HomeController' ,
                    controllerAs: 'home',
                    templateUrl: '/app/templates/home.html'
                })
                .when('/schools',{
                    controller: 'AllSchoolsController',
                    controllerAs: 'schools',
                    templateUrl: '/app/templates/allSchools.html',
                    caseInsensitiveMatch: true
                })
                .when('/classrooms/:id',{
                    controller: 'AllClassroomsController',
                    controllerAs: 'classrooms',
                    templateUrl: '/app/templates/allClassrooms.html'
                })
                .when('/activities',{
                    controller: 'AllActivitiesController',
                    controllerAs: 'activities',
                    templateUrl: '/app/templates/allActivities.html',
                    resolve: {
                        activities: function(dataService){
                            return dataService.getAllActivites();
                        }
                    }
                })
                .when('/classrooms/:id',{
                    templateUrl: '/app/templates/classroom.html',
                    controller: 'ClassroomController',
                    controllerAs: 'classroom'
                })
                .when('/classroom/:id/detail/:month?',{
                    templateUrl: '/app/templates/classroomDetail.html',
                    controller: 'ClassroomController',
                    controllerAs: 'classroom'
                })
                .otherwise('/');
        }]);
        
        app.run(['$rootScope', '$log', function($rootScope, $log){
            //通过$on为$rootScope添加路由事件
            $rootScope.$on('$routeChangeSuccess',function(event, current, previous){
                $log.debug('successfully changed routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
            });
            
            $rootScope.$on('$routeChangeError', function(event, current, previous, rejection){
                $log.debug('error changing routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
                $log.debug(rejection);
            });
        }]);
    }());
    复制代码

     


    ■ AllActivitiesController.js,把路由resolve属性中的activities注入到控制器中来

     

    复制代码
    (function(){
        angular.module('app')
            .controller('AllActivitiesController', ['dataService', 'notifier', '$location', 'activities', AllActivitiesController]);
            
        function AllActivitiesController(dataService, notifier, $location, activities){
            var vm = this;
            
            vm.seletedMonth = 1;
            
            //这里的activites中路由的resolve中来
            //原先的getAllActivities方法就不需要存在了
            vm.allActivities = actvities;
            
            
            //搜索过滤
            vm.search = function(){
                var classroom_detail_url = '/classrooms/' + vm.selectedClassroom.id + '/detail/' +vm.seletedMonth;
                $location.url(classroom_detail_url);
            };
            
            dataService.getAllClassrooms()
                .then(function(classrooms){
                    vm.allClassrooms = classroom;
                    vm.seletedClassroom = classrooms[0];
                })
                .catch(showError);
                
                
            function showError(message){
                notifier.error(message);
            }
        }
    }());
    复制代码

     

    使用resolve的好处是:当视图页向$scope要数据的时候,由于在controller实例化之前已经准备好了数据,所以页面延迟时间大大缩短。

     

    路由URL格式

     

    ● Hashbang格式: localhost:3000/#/classrooms/1/detail/12,默认的就是这种格式
    ● HTML5格式:localhost:3000/classrooms/1/detail/12,需要使用$locationProvider配置,如果使用这种格式,但浏览器不支持HTML5的历史API,Angular就会使用Hashbang格式。

     

    ■ app.js, 引用$locationProvider配置自定义url格式

     

    复制代码
    (function(){
        var app = angular.module('app', ['ngRoute']);
        
        app.config(['$logProvider','$routeProvider', '$locationProvider', function($logProvider,$routeProvider, $locationProvider){
            $logProvider.debugEnabled(true);
            
            //使用自定义url格式
            $locationProvider.hasPrefix('!');
            
            $routeProvider
                .when('/',{
                    controller: 'HomeController' ,
                    controllerAs: 'home',
                    templateUrl: '/app/templates/home.html'
                })
                .when('/schools',{
                    controller: 'AllSchoolsController',
                    controllerAs: 'schools',
                    templateUrl: '/app/templates/allSchools.html',
                    caseInsensitiveMatch: true
                })
                .when('/classrooms/:id',{
                    controller: 'AllClassroomsController',
                    controllerAs: 'classrooms',
                    templateUrl: '/app/templates/allClassrooms.html'
                })
                .when('/activities',{
                    controller: 'AllActivitiesController',
                    controllerAs: 'activities',
                    templateUrl: '/app/templates/allActivities.html',
                    resolve: {
                        activities: function(dataService){
                            return dataService.getAllActivites();
                        }
                    }
                })
                .when('/classrooms/:id',{
                    templateUrl: '/app/templates/classroom.html',
                    controller: 'ClassroomController',
                    controllerAs: 'classroom'
                })
                .when('/classroom/:id/detail/:month?',{
                    templateUrl: '/app/templates/classroomDetail.html',
                    controller: 'ClassroomController',
                    controllerAs: 'classroom'
                })
                .otherwise('/');
        }]);
        
        app.run(['$rootScope', '$log', function($rootScope, $log){
            //通过$on为$rootScope添加路由事件
            $rootScope.$on('$routeChangeSuccess',function(event, current, previous){
                $log.debug('successfully changed routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
            });
            
            $rootScope.$on('$routeChangeError', function(event, current, previous, rejection){
                $log.debug('error changing routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
                $log.debug(rejection);
            });
        }]);
    }());
    复制代码

     

    ■ index.html,为了配合以上的自定义url格式需要做些改变

     

    <a href="#!/">School Buddy</a>
    
    <a href="#!/schools">Schools</a>
    <a href="#!/classrooms">Classrooms</a>
    <a href="#!/activities">Activities</a>

     

     

    ■ app.js, 引用$locationProvider配置HTML5的url格式

     

    复制代码
    (function(){
        var app = angular.module('app', ['ngRoute']);
        
        app.config(['$logProvider','$routeProvider', '$locationProvider', function($logProvider,$routeProvider, $locationProvider){
            $logProvider.debugEnabled(true);
            
            //使用HTML5格式
            $locationProvider.html5Mode({
                enabled: true,
                requireBase: true, //需要配置基地址
                rewriteLinks: true //遇到旧版本的浏览器会使用默认的Hashbang模式
            });
            
            $routeProvider
                .when('/',{
                    controller: 'HomeController' ,
                    controllerAs: 'home',
                    templateUrl: '/app/templates/home.html'
                })
                .when('/schools',{
                    controller: 'AllSchoolsController',
                    controllerAs: 'schools',
                    templateUrl: '/app/templates/allSchools.html',
                    caseInsensitiveMatch: true
                })
                .when('/classrooms/:id',{
                    controller: 'AllClassroomsController',
                    controllerAs: 'classrooms',
                    templateUrl: '/app/templates/allClassrooms.html'
                })
                .when('/activities',{
                    controller: 'AllActivitiesController',
                    controllerAs: 'activities',
                    templateUrl: '/app/templates/allActivities.html',
                    resolve: {
                        activities: function(dataService){
                            return dataService.getAllActivites();
                        }
                    }
                })
                .when('/classrooms/:id',{
                    templateUrl: '/app/templates/classroom.html',
                    controller: 'ClassroomController',
                    controllerAs: 'classroom'
                })
                .when('/classroom/:id/detail/:month?',{
                    templateUrl: '/app/templates/classroomDetail.html',
                    controller: 'ClassroomController',
                    controllerAs: 'classroom'
                })
                .otherwise('/');
        }]);
        
        app.run(['$rootScope', '$log', function($rootScope, $log){
            //通过$on为$rootScope添加路由事件
            $rootScope.$on('$routeChangeSuccess',function(event, current, previous){
                $log.debug('successfully changed routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
            });
            
            $rootScope.$on('$routeChangeError', function(event, current, previous, rejection){
                $log.debug('error changing routes');
                
                $log.debug(event);
                $log.debug(current);
                $log.debug(previous);
                $log.debug(rejection);
            });
        }]);
    }());
    复制代码

     

    ■ index.html,为了配合URL的HTML5格式需要做些改变

     

    复制代码
    <head>
        <base href="/">
    </head>
    
    <a href="/">School Buddy</a>
    
    <a href="/schools">Schools</a>
    <a href="/classrooms">Classrooms</a>
    <a href="/activities">Activities</a>
    复制代码

     

    但是url使用HTML5格式有一个不好的地方,当输入一个不存在的url就会报一个404的错。

     

    展开全文
  • mid=100的方式传递参数更灵活,你不需要设置路由,只需要在url后拼接参数即可,但是这种方式就需要通过javascript获取并提取url中的参数,通过传统的方式直接在页面中获取是行不通的了,因为vue中是无法通过location...
  • 项目开发过程中经常需要用到当前页面完整url和baseUrl等进行url跳转操作.下面说明一下获取当前页面完整路径的方法:

    项目开发过程中经常需要用到当前页面完整url和baseUrl等进行url跳转操作.

    下面说明一下

    获取当前页面完整路径的方法:<?php

    function getFullUrl(){

    # 解决通用问题

    $requestUri = '';

    if (isset($_SERVER['REQUEST_URI'])) { #$_SERVER["REQUEST_URI"] 只有 apache 才支持,

    $requestUri = $_SERVER['REQUEST_URI'];

    } else {

    if (isset($_SERVER['argv'])) {

    $requestUri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['argv'][0];

    } else if(isset($_SERVER['QUERY_STRING'])) {

    $requestUri = $_SERVER['PHP_SELF'] .'?'. $_SERVER['QUERY_STRING'];

    }

    }

    // echo $requestUri.'
    ';

    $scheme = empty($_SERVER["HTTPS"]) ? '' : ($_SERVER["HTTPS"] == "on") ? "s" : "";

    $protocol = strstr(strtolower($_SERVER["SERVER_PROTOCOL"]), "/",true) . $scheme;

    $port = ($_SERVER["SERVER_PORT"] == "80") ? "" : (":".$_SERVER["SERVER_PORT"]);

    # 获取的完整url

    $_fullUrl = $protocol . "://" . $_SERVER['SERVER_NAME'] . $port . $requestUri;

    return $_fullUrl;

    }

    echo getFullUrl();

    注:由于php没有内置的函数.我们需要对url上的参数进行组合,从而实现整个url.

    展开全文
  • vue实现登录后跳转到来源路由url

    千次阅读 2019-03-20 18:08:00
    sessionStorage存储from.path来源的路由url,如果不是登录或者注册就拦截跳到登录页,如果是就放行 router.beforeEach(function(to,from,next){ if(to.path!='/login' && to.path!='/register'){ ...
  • 一、获取当前域名 var domain = document.domain; var domain = window.location.host; ...获取到的当前域名不包括 http://,如本地 127.0.0.1 ...二、获取当前Url  var url = window.location.href; ...
  • laravel 获取当前路由url

    千次阅读 2018-09-19 20:36:00
    当前的url \Request::getRequestUri() 当前route \Request::route()->getName() 转载于:https://www.cnblogs.com/vinzen/p/9677467.html
  • vue-router地址栏URL拼接全局参数 业务需求: vue单页面项目,需要在URL地址栏拼接固定的参数,在所有页面使用。默认采用vue路由的history模式;hash模式也可以同样适用。 主要是在 vue-router 导航守卫的全局前置...
  • Laravel 之url参数,获取路由参数

    万次阅读 2017-04-24 11:08:24
    echo ''; var_dump( $request->url() ); // url echo ''; echo ''; var_dump( $request->route( 'email' ) ); //获取路由参数 echo ''; echo '';
  • How to get route from given URL. I know about this answer: <a href="https://stackoverflow.com/a/36476224/9696145">https://stackoverflow.com/a/36476224/9696145</a></p> <p>This way doesn't help me ...
  • thinkphp URL规则、URL伪静态、URL路由URL重写、URL生成
  • laravel 获取当前url, 路由

    万次阅读 2018-02-23 18:10:53
    当前的url \Request::getRequestUri()当前route \Request::route()-&gt;getName()
  • 路由在设置path { path: '/detail/:id/', name: 'detail', component: detail, meta: { ...获取url参数 let id = this.$route.params.id 注意 参数名需要保持一致 错误URL:http://127.0.0.1...
  • 本章节:详细介绍thinkphp URL规则、URL伪静态、URL路由URL重写、URL生成 一、URL规则 1、默认是区分大小写的 2、如果我们不想区分大小写可以改配置文件 'URL_CASE_INSENSITIVE'=>true,//url不区分大小写 ...
  • 微信小程序可以通过 getCurrentPages() 方法获取当前页面的Url地址 也可通过 pages[pages.length - 2].route 获取上级页面的Url地址 注: getCurrentPages()得到的是一个数组,数组的最后一项是当前页面的对象 ...
  • this.$route.query.gid //gid是获取指定参数的名字 转载于:https://www.cnblogs.com/tomyangym/p/9242514.html
  • console.log('页面url路由名称',window.location.hash.split('?')[0].replace(/(#|\/)/g,''));
  • 在zuul中有两种路由配置: 1. 通过访问ip及端口号映射 2.通过服务名称映射 在上节代码基础上: 首先我把服务提供者与服务消费者都开了集群: 先配置第一种: 更改网关application.yml server: port: ...
  • URL路由和参数处理

    2019-12-26 15:07:57
    URL路由和参数处理 URL路由 RESTful URL @RestController 注解 @RquestMapping 注解 参数处理 @PathVariable 注解 @RequestParam 注解 URL路由和参数处理 URL路由 RESTful URL 理解RESTful架构 - ...
  • URL路由入口脚本程序获取到到URL中相关的GET参数,解析后进行权限判断,然后调用相应的控制器处理这个请求。该过程就被称为URL路由(routing)。解析路由地址URL地址路由当传入的URL请求中包含一个名为 c、a、do(可选)...
  • 下面来说说express获取路由地址参数的方法。var express=require('express');var app=express();app.get('/csdn',function(req,res){ var name=req.query.name; res.send(name)});app.get('/csdn/:i...
  • routes.MapRoute( name: "Admin", url: "Admin/{controller}/{action}", defaults: new { ...实际上当前所匹配的路由是第二个,我想要获得的格式是:/XXX/Index 如何指定Url.Action生成Url所使用的路由
  • 前言:为什么要不通过路由直接获取url中的参数? vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue的路由中提前设置好的。 相对来说,在某些情况下直接在url后面...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 125,862
精华内容 50,344
关键字:

获取路由url