JQuery - построить красивый URL из параметров - PullRequest
1 голос
/ 28 апреля 2011

jQuery имеет функцию param(), я ищу похожую функциональность.Мне нужно вернуть URL в моем объекте.Например:

url: function() {
  return this.baseUrl + '?' + $.param({page: this.page, perPage: this.perPage});
},

возвращает URL в виде example.com/?page=1&perPage=5 или что-то подобноеКак я могу сформировать URL example.com/page/1/perpage/5?

Ответы [ 3 ]

2 голосов
/ 28 апреля 2011

Вы можете создать свою собственную функцию:

function build(base, params) {
    for(var k in params) {
        if(params.hasOwnProperty(k)) {
            base += '/' + k + '/' + params[k];
        }
    }
    return base;
}

Единственная проблема заключается в том, что порядок параметров не гарантирован (что не является проблемой для строк запроса, но может быть для URL такого типа),Вы также можете добавить проверку, если base уже заканчивается косой чертой или нет.

1 голос
/ 28 апреля 2011

Просто идея:)

'example.com/?page=1&perPage=5'.replace(/[&=]/g,'/').replace('?','')
 .toLowerCase();
0 голосов
/ 28 апреля 2011

пометьте это на конце:

replace(/[&=]/g,'/').replace('?','')

вроде так:

url: function() {
  return (this.baseUrl + '?' + $.param({page: this.page, perPage: this.perPage})).replace(/[&=]/g,'/').replace('?','');
},

отредактировано, чтобы указать на беспокойство Феликса Клинга? Это только удалит ПЕРВЫЙ? оставляя любые другие? которые являются частью строки запроса INTACT. Совершенно безопасно для использования.

...