Sammy.js 使用 &,? 读取路由

2024-04-14

需要的路线看起来像

#/routeName/?param1=aaaa&param2=bbb

添加到萨米

#/routeName/:param1/:param2

and

#/routeName/?:param1&:param2

他们都不起作用


我自己一直在 Sammy.js 中研究查询参数,并发现(尽管 API 文档中没有提及)Sammy 确实支持查询参数。它只是将在路由中找到的任何查询参数添加到路由的 Sammy.EventContext.params 数组中。如果您的路线结构如下:

Sammy(function() {
    this.get("#/routeName/", function(context) {
        alert("{'param1': '" + context.params.param1 + "', 'param2': '" + context.params.param2 + "'}");
    });
});

你会发现,如果你去路由“#/routeName/”,你会得到“{'param1': undefined, 'param2': undefined}”,但是如果你去“#/routeName/?param1= aaaa&param2=bbb”,你会得到“{'param1': 'aaaa', 'param2': 'bbb'}”。这允许您以许多 REST API 开发人员熟悉的方式处理可选参数。


至于为什么你的其他两条路线不起作用:

#/routeName/:param1/:param2

具有命名的必需参数,该参数至少需要一个非/(正斜杠)字符才能匹配路由。至少,您必须转到沿着“#/runRoute/a/b”行的路线才能触发该路线的运行。如果不提供正则表达式来代替命名参数,您将无法轻松获得所需的效果。

#/routeName/?:param1&:param2

由于“?”,#/routeName/ 后面的 / 是可选的Sammy 路由中表示前一个字符或表达式(可以使用括号定义)的特殊字符是可选的。使用此路由,您可能会匹配 '#/routeName&b' 以及 #/routeName/e&b',在这两种情况下 param1 都设置为 'e',而 param2 在这两种情况下都设置为 'b'。由于 Sammy 中存在查询参数规则,您将无法轻松定义“?”在路由内,但您可以使用 URL 转义形式“%3F”。


希望这能回答您的问题,我看到了这个问题并且最近一直在研究类似的问题。我不会声称自己是对 Sammy 最了解的人,但我们在我目前的工作中使用它,这是迄今为止我们能够弄清楚的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Sammy.js 使用 &,? 读取路由 的相关文章

随机推荐

  • 如何使用 Visual Studio 2015 模拟 iOS 后台获取

    我搜索了一段时间 但找不到如何使用 Visual Studio 2015 模拟 iOS 后台获取 似乎有一种方法可以在 XCode 中执行此操作 但我找不到 Visual Studio 2015 的任何内容 有人可以帮忙吗 打开项目选项并转
  • Git 从新克隆的存储库签出到分支会导致该分支中的未暂存更改

    我有一个奇怪的 git 问题 在检查了一个分支 远程跟踪的 后 我立即获得该分支中已修改和未暂存的更改 我再次克隆了存储库以验证问题是否仍然存在 我使用 Windows 和 gitblit 作为 Git 服务器 您知道为什么会发生这种情况吗
  • 如何使用 javascript 访问 Chrome 中的另一个选项卡?

    基本上 当我在 Chrome 控制台中运行此脚本时 我想获取当前 url 打开一个新选项卡 并将其设置为文本框的值 javascript function var url location href var newtab window op
  • 通过 JPA 关系进行 Bean 验证

    我想使用 Bean Validation 来注释实体中的约束 现在的问题是 实体上的关系也会得到验证吗 例如 假设我有以下实体 Entity Table name css empresa public class Empresa exten
  • 如何在 PostgreSQL 8.4 中从 string_to_array() 返回一个元素?

    我想解析具有以下类型值的字段 DAVE EBERT CONSTRUCTION 139 LENNOX STREET SANTA CRUZ CA 95060 公司电话号码 831 818 3170 我想做一个这样的查询 Update mytab
  • tkinter 错误的屏幕距离“10 0”

    My goal is to pady this section marked with a red circle slighty down Snippet of my code supposed to pady the last label
  • C# 和 C++ 中 ++i 运算符的区别

    我用 C 和 C 编写了以下代码 int i 0 i 11 此 C 编译器出现错误后 The left hand side of an assignment must be a variable property or indexer 但是
  • 如何禁用 Identityserver4 的 SSL

    为了测试目的 我需要在 DotNet Core 2 中禁用 IdentityServer4 的 SSL TSL 我看过这个链接 禁用 Identityserver3 的 SSL https stackoverflow com questio
  • ActiveRecord 迁移未填充 Postgres 物化视图

    我有一个MATERIALIZED VIEW这是通过迁移创建的 class MyView lt ActiveRecord Migration def up ActiveRecord Base connection execute lt lt
  • 如何在 mongoose js 中嵌套相同的模式

    我正在尝试使用 mongoose js 嵌套模式 特别是sameschema 创建树状结构 在此配置中 一个文档只能有 1 个父文档 但同一文档可以是多个子文档的父文档 以下是我最初的处理方式 var mongoose require mo
  • 读写模式Python [重复]

    这个问题在这里已经有答案了 可能的重复 python open内置函数 模式a a w w 和r 之间的区别 https stackoverflow com questions 1466000 python open built in fu
  • CSS 图像遮罩叠加

    我正在尝试获取一个透明的 png 框架图像 将其悬停在 img 标签上 以在其上创建框架的外观 我尝试了多种不同的方法 但似乎都不起作用 我使用的最新方法是http www cssbakery com 2009 06 background
  • 如何在 Struts 2 验证框架中验证布尔值

    简单 我必须确保选中表单上的隐私复选框 我尝试使用表达式验证器 和字段表达式验证器 但它不起作用 有谁能够帮助我 您能提供更多信息吗 您是如何使用表达式验证器的 为什么它不起作用 看来这种方法应该很好用 需要考虑一些事情 您的布尔值是否同时
  • 硒,是否存在多种元素之一?

    以答案为基础如何使用 Selenium for Python 等待页面加载 https stackoverflow com questions 26566799 how to wait until the page is loaded wi
  • 如何获取 Mac(Cocoa 或 C)的电池电量(以 mWh(而非百分比)为单位)

    标题几乎解释了一切 我正在创建一个 Mac 应用程序 我需要电池电量具体单位为毫瓦时 不是百分比 最好用 C 或 Objective C 来做 Thanks 抱歉 但我认为硬件没有办法报告这一点 随着电池进入其生命周期 它会随着时间的推移而
  • 以 json 形式返回时排除某些字段

    我有一个 ASP NET Web API 应用程序 现在假设应用程序由 User 实体和 Post 实体组成 帖子是由用户编写的 因此每个帖子实体都包含对用户实体的引用 class Post public int Id get set pu
  • android 列表视图按钮

    我正在尝试在列表视图中添加一个按钮 但按钮没有显示 我正在使用 json 解析从我的服务器获取数据 我正在使用哈希图和列表视图 此外 我也无法在列表视图中添加按钮 这是我的代码 package acb xiynove import java
  • 使用 Open Graph API 阻止用户

    是否可以使用开放图谱 API 阻止 Facebook 上的用户 我不想阻止用户使用应用程序 但希望允许用户在我的应用程序中阻止 Facebook 好友 如果他们愿意 这与访问 Facebook com 并阻止用户一样 从而将他们隐藏在您的所
  • ADO 参数化查询不返回任何结果

    我正在使用此查询从经典 asp 页面中的 vbscript 获取一些结果 但它不会返回任何值 该页面是空白的 也没有错误 请问有什么建议吗 dim cmd admin no admin no request QueryString admi
  • Sammy.js 使用 &,? 读取路由

    需要的路线看起来像 routeName param1 aaaa param2 bbb 添加到萨米 routeName param1 param2 and routeName param1 param2 他们都不起作用 我自己一直在 Samm