使用 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"
URL : http://localhost:3000/dashboard?ID=10400&Name=10400
我正在尝试从 URL 获取查询参数 ID 和名称,但未定义。我也试过 backbone-queryparams 但它仍然不起作用。知道如何使用 Backbone Marionette
中的参数获取当前 URLdefine([
'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"