首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >获取不带参数的URL路径

获取不带参数的URL路径
EN

Stack Overflow用户
提问于 2015-09-07 02:59:33
回答 1查看 1.7K关注 0票数 1

目标

主要思想是在没有在路由提供程序中设置的$location.path()的情况下获得:param ()。

描述

假设我的应用程序必须用一个param定义随机路径。因此,我将使用循环函数为干净的代码和干问题定义所有这些。

例如:

代码语言:javascript
运行
AI代码解释
复制
// get pool of paths from server and set them dynamically
pathsApi.get().then(function(res){
   // just example for demonstrate
   res.data = ['search1','search2','search3','search4'];
   angular.forEach(res.data, function(route,key){
      .when('/search/' + route + '/:search', route.resolve('Search', '/', 'svm'));
   });
});

// other regular paths
.when('/home', route.resolve('Home', '/', 'hvm'));
.when('/help', route.resolve('Help', '/', 'hlvm'));

Grat。一切都很好。现在我有很多可以进入的道路。

问题/我需要的建议

我有个指令可以做一些事情。其中之一是检查位置是否包含单词搜索,如果是的话,我想知道搜索路线的名称。

例如:

用户转到/#/search/search3/someText

我要去找/#/search/search3

当然,我可以使用拆分和其他技术。但我知道角知道someText是一个param (称为:search)。因此,我确信角可以告诉我,没有:search的情况下,什么是:search,所以它将仅仅是我前面提到的路径。

我正在寻找优雅的方式通过角度,没有混乱的代码,分裂或假设。我不想用$location.search或$location.hash代替。我想按原样保存URL方案。

EN

回答 1

Stack Overflow用户

发布于 2015-09-07 04:34:28

我找到了两个可能的快速解决方案,这取决于你是否喜欢它。

我用过angular-ui-router.

第一种方法是创建一个routes.json文件,在该文件中可以存储所有路由,然后在应用程序运行之前同步获取json,并将所有路由存储在$rootScope中,这样您就可以方便地在任何地方访问它们。使用此解决方案,您将始终将清晰的路径存储在json中。

代码语言:javascript
运行
AI代码解释
复制
var routes;

$.ajax({
    url : 'routes.json',
    method : 'GET',
    dataType : 'json',
    async : false
}).success(function(response){
    routes = response;
});

// Routes
var Settings = function($stateProvider, $urlRouterProvider){

    $stateProvider
        .state(routes.HOME.name, {
            url : routes.HOME.path
        })
        .state(routes.SEARCH.name, {
            url : routes.SEARCH.path + '/' + routes.SEARCH.params
        });

    $urlRouterProvider.otherwise('/');

};

Settings.$inject = [
    '$stateProvider',
    '$urlRouterProvider'
];

app.config(Settings);

route.json

代码语言:javascript
运行
AI代码解释
复制
{
    "HOME" : { "name" : "home", "path" : "/" },
    "SEARCH" : { "name" : "search", "path" : "/search", "params" : ":params" }
}

第二个参数,因为没有直接参数可以告诉您清除路径,所以您可以使用$state.current.url,它告诉您当前url包含在$stateProvider配置中键入的所有参数: like :param或:search

然后,您可以使用$stateParams知道您设置了哪些参数,并使用字符串替换将其删除。

也许能帮到你

代码语言:javascript
运行
AI代码解释
复制
// Routes
var Settings = function($stateProvider, $urlRouterProvider){

    $stateProvider
        .state('home', {
            url : '/',
            template : 'home page'
        })
        .state('search', {
            url : '/search/:param',
            controller : 'SearchCtrl'
        });

    $urlRouterProvider.otherwise('/');

};

Settings.$inject = [
    '$stateProvider',
    '$urlRouterProvider'
];

app.config(Settings);
代码语言:javascript
运行
AI代码解释
复制
// Controller
var SearchCtrl = function($scope, $state, $stateParams){

    // Parameters 
    var cleanPath;

    // Methods
    function initCtrl(){

        cleanPath = getCleanUrlPath($state.current.url, $stateParams);  

    }   

    function getCleanUrlPath(url, params){

        for( var param in params) {
            // Remove from the url all params inside $stateParams
            url = url.replace(':' + param, '');
        }

        return url;

    }

    // Initialize controller
    initCtrl();

};

SearchCtrl.$inject = [
    '$scope',
    '$state',
    '$stateParams'
];

app.controller('SearchCtrl', SearchCtrl);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32437029

复制
相关文章
Html获取Url参数
做web前端的开发很多的时候都会遇到的一个很简答的问题,就是两个页面之间的跳转,一般来说是:
何处锦绣不灰堆
2020/05/29
9.9K0
Html获取Url参数
js获取URL参数
要在浏览器内访问查询的值,使用JavaScript,我们有一个特殊的API,称为URLSearchParam,它受到所有现代浏览器的支持:
IT工作者
2022/01/15
46.7K0
JavaScript获取当前url路径
1、假设当前页完整地址是:https://www.qmblog.cn:8080/Home/Index?id=2&age=18 //获取当前窗口的Url var url = window.locatio
青梅煮码
2023/01/16
1.7K0
JS/JQ获取url参数
获取页面键值对参数 例:html?id=123 获取url键值对参数 function getQueryString(name) { var reg = new RegExp("(^|&)"
WindCoder
2018/09/20
4K0
dns url转发_获取url参数的方法
DNSPod是一款免费智能DNS产品,可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。
全栈程序员站长
2022/11/02
6.4K0
获取url链接参数
/******封装获取url链接参数开始******/ getWxCode(name){ return decodeURIComponent((new RegExp('[?|&]' + name
〆 千寻、
2020/03/12
2.4K0
js获取url参数
js获取url参数 一、 function getUrl(name) { var reg = new RegExp("(\\?|\&)" + name + "=([^&]*)(\&|$)",
deepcc
2018/05/16
28.5K0
js获取url中的参数
js获取url中的参数 <script language="javascript"> function getRequestPars() { var url = location.search;
码客说
2019/10/22
15.5K0
js获取url上的参数
获取url上的参数 function getUrlParam(name) { if (name == null) { return name; } var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r != null) { //return une
阿超
2022/08/16
12.1K0
js获取url上的参数
js获取url中的参数
js获取url中的参数 function UrlSearch() { var name, value; var str = kk; //取得整个地址栏 var num = st
河岸飞流
2019/08/09
15.6K0
获取url参数的精简代码
题目描述 获取 url 中的参数 指定参数名称,返回该参数的值 或者 空字符串 不指定参数名称,返回全部的参数对象 或者 {} 如果存在多个同名参数,则返回数组 输入例子: getUrlPar
mcq
2018/06/27
2.7K0
js获取URL中的参数
一般网页开发中会使用url进行传参,有的采用java的方式或其他的方式,下面我来介绍一下如何通过js来获取url中的参数。请看代码:
OECOM
2020/07/01
13.9K0
js获取url参数的方法
js获取url参数的方法有很多。 1.正则分析 function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } 调用方法: alert(GetQueryString("
水击三千
2018/02/27
19.8K0
封装获取url参数的方法
功能需求:前端页面来回切换需要我们去获取URL的某个参数值。这时封装一个输入参数名获取对应参数值的函数是很有必要的; //取url上的id function getQueryString(name) { //取url上的id var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.search.substr(1).match(reg); if (r !
青梅煮码
2023/02/18
1.7K0
vue项目获取url参数
前的内容不影响 1、首先先下载: npm i qs 2、然后引入 : import qs from 'qs' 3、调用 : hash模式 import qs from 'qs' const query = qs.parse(location.hash.substring(3)) let channel = query.channel let user = query.user history模式 import qs from 'qs' const query = qs.parse(location.sea
用户1349575
2022/01/24
2.3K0
vue项目获取URL参数
做微信公众号的时候我们经常会遇到一个问题,就是我们需要进行简单的身份认证,也就是我们需要拿到公众号登录成功以后的code,其实这个code是为了获取登录者的openid用的,每次获取到的code是不一样的,其实我们做开发的时候我们是在微信的后台配置里面将code配置在url中的,在进行一次微信的转发以后直接就可以在url中拿到code,这个其实在之前的jquery中是写过了怎么获取的,这次只是将这个js用到 vue中,没有别的什么特别的意义,希望以后直接哪来用就可以。
何处锦绣不灰堆
2020/05/28
1.8K0
通过PicturreId获取图片路径(Url)
1.直接使用接口服务 _pictureService.GetPictureUrl((int)entity.SponsorPictureId); //entity是具体查询出来的实体对象 SponsorPictureId是entity实体中的图片Id 2.GetPictureUrl方法存在IPicture接口的实现类中  (2.1) IPicture 接口的定义 string GetPictureUrl(int pictureId, int targetSize = 0,
wfaceboss
2019/04/08
1.8K0
js 获取 url 查询参数
例如: http://30.7.212.45:3000/#/?id=100 获取 id 的值的 js 代码如下: var id; var href = window
一个会写诗的程序员
2018/08/17
18.7K0
使用jquery获取url及url参数的方法
使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作
Jensen_97
2023/07/19
1.5K0
JavaScript案例:获取URL参数
第一个登录页面,里面有提交表单,action提交到index.html页面 第二个页面,可以使用第一个页面的参数,这样实现了一个数据不同页面之间的传递效果 第二个页面之所以可以使用第一个页面的数据,是利用了URL里面的location.searchi参数 在第二个页面中,需要把这个参数提取。 第一个去掉? 利用substr 第二个利用=号分割键和值 split('=') 第一个页面(login.html): <!DOCTYPE html> <html lang="en"> <head> <meta
岳泽以
2022/10/26
1.6K0

相似问题

获取不带参数的URL

214

不带任何附加参数的Express.JS获取url路径

22

在Angular2+中获取不带参数的url路径

31

匹配带或不带url参数的路径

31

获取不带预设参数的整个url

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文