使用 Backbone Marionette 中的查询参数获取当前 URL

Get Current URL with query parameters in Backbone Marionette

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

我正在尝试从 URL 获取查询参数 ID 和名称,但未定义。我也试过 backbone-queryparams 但它仍然不起作用。知道如何使用 Backbone Marionette

中的参数获取当前 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 库。

从此处的示例 () 看来,最好的选择是设置带有 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
    }
}

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