获取具有主干木偶查询参数的当前 URL

Get Current URL with query parameters in Backbone Marionette

本文关键字:参数 URL 查询 获取      更新时间:2023-09-26

URL : http://localhost:3000/dashboard?ID=10400&Name=10400

我正在尝试从 URL 获取查询参数 ID 和名称,但我未定义。我也尝试过骨干查询参数,但它仍然不起作用。知道如何在骨干木偶中使用参数获取当前URL

define([
    'jquery',
    'backbone',
    'marionette',       
    'modules/dashboard/controllers/dashboardController',
    'backbone.queryparmas'
], function ($, Backbone, Marionette, Controller) {
    'use strict';
    return Marionette.AppRouter.extend({
        appRoutes: {
            '': 'dashboard'
        },
        initialize: function(){
            console.log( Backbone.history.fragment ); // getting undefined
        },
        controller: new Controller()
    });
});

我必须这样做才能获取查询参数。不确定是否有更好的方法。

messagedashboard: function () {
  var searchParams = window.location.search.slice(1); // returns 'ID=10400&Name=10400'
  var getParamsFromSearchParams = $.deparam(searchParams); //changes into object
}

如需使用$.deparam请查看 jquery.bbq 库。

从这里的例子(https://stackoverflow.com/a/11671457/3780922)来看,看起来最好的选择是设置一个带有 catchall 参数的路由,这将为您提供整个查询字符串。

appRoutes: {
   '': 'showDash', //default for blank/empty route
   'dashboard': 'showDash',
   'dashboard?*queryString' : 'showDash'
},
showDash: function (queryString) {
    var params = parseQueryString(queryString);
    if(params.foo){
        // foo parameters was passed
    }
}

但是,您必须编写自己的查询字符串解析器,但如果它不为 null,则会在 queryString 对象中传递查询参数,在您的示例中,该对象将"ID=10400&Name=10400"