【问题标题】:Backbone routes: optional parameter not matching骨干路由:可选参数不匹配
【发布时间】:2013-09-10 12:33:30
【问题描述】:

我的路由器使用以下配置:

var Router = Backbone.Router.extend({
            routes: {
                'item/:param(/:param-2)': 'func1',

                // Default
                '*actions': 'defaultAction'
            }
        });

我如下初始化路由器:

    var router = new Router;

    router.on('route:func1', function(param1, param2){
        console.log("Route: summary, class_id: " + class_id);

    });

但只有 #item/1 格式的 URL 会被 func1 路由匹配。

#item/1/3 这样的 URL 被传递到 defaultAction 路由。

我无法弄清楚为什么可选参数不匹配。

【问题讨论】:

  • 我最终想通了。路线中显然不允许使用“-”。
  • 当我用“_”替换“-”时它起作用了

标签: backbone.js backbone-routing


【解决方案1】:

对于其他人,参数名称中不允许使用“-”字符。 (虽然它被允许成为路线的一部分。)

您可以将“param-2”替换为“param_2”,它会起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-27
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多