问题标签 [backbone-routing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1499 浏览

javascript - 带有可选“/”和查询参数的主干路由

想要设置一个与看起来像这样的 url 匹配的主干路由,以及它的所有“直观”衍生产品”

在我看来,“直观”的衍生品将是所有这些网址:

问题是主干路由变得超级丑陋:

我觉得这条路线应该可以用一行而不是四行来表示。此外,我不需要将 url 参数作为参数发送,如果不这样做,我就无法让它工作。

我怎样才能更好地指定这条路线?

另外,我是否错误地处理了这个问题?我觉得我一开始就有这个问题的事实可能与对这个问题的更根本的误解有关。

谢谢!

0 投票
1 回答
1338 浏览

jquery-mobile - 为什么我的主干路由器重定向到应用程序根目录?

我在我的应用程序中使用以下路由器:

如果我使用

它成功地将应用程序发送到服务器/#folders,但是当我通过

它触发应用程序的根目录并加载我的登录页面。在重定向发生之前,我可以看到正确的 URL(例如 server/folders/folder1)暂时闪烁。关于这里发生了什么的任何想法?

0 投票
1 回答
862 浏览

backbone.js - 主干视图组织和部分

我有一个相当复杂的 Backbone 应用程序,我不确定如何组织视图/模板。该应用程序是一个基于 Web 的电子邮件客户端。我真的很难理解如何制作这个侧边栏。

应用程序侧边栏与您在 Apple Mail/Outlook 中看到的非常相似。它基本上是一个文件夹浏览器。此视图存在于每个页面上。

我有两个主要问题:

如何将集合数据放入侧边栏视图?

从技术上讲,侧边栏上呈现了三个“集合” - 帐户 => 邮箱和标签。所以一些示例代码看起来像这样:

所以理论上我需要做这样的事情,不是吗?

问题是我不能同时通过@accounts路由器@labels。我意识到我可以使用@options,但这似乎很混乱且不可靠。此侧边栏需要存在于每个页面上。在 Backbone 堆栈上应该是什么样子?我认为它不应该有自己的路由器,因为它不是真正的“页面”。

我会把事情分解成更小的视图吗?

每个邮箱都应该有自己的视图吗?每个邮箱都应该有自己的视图吗?每个标签都有自己的看法?我想监听事件,例如新消息,并更新邮箱未读计数(例如)。但是我该怎么做呢?如何嵌套视图并有效地处理所有对象的创建/获取?如果我要将事物分解为更小的视图,我的侧边栏视图应该是什么样的?

对不起,如果我在胡说八道。我已经看了好几天了,似乎找不到一个好的解决方案。

0 投票
1 回答
699 浏览

backbone.js - 骨干网:没有散列的直接页面访问

针对我在 Backbone.js 中不断遇到的问题回答我自己的问题...

在我的 Backbone 应用程序中,我希望用户能够直接导航到内部“页面”,而无需在 URL 中键入井号 (#)。开箱即用,Backbone Boilerplate似乎不支持这一点,即使它确实支持pushState

显然,用户只要从主页开始就可以到达任何位置。或者他们可以直接跳到内部页面,但前提是域之后直接有一个井号 (#) 或紧跟在初始斜线之后。

我找到了一个似乎有效的解决方案。我在这里为其他有同样问题的人发布它,看看是否有人知道更好的方法,因为我在其他地方找不到这个确切的问题。

0 投票
1 回答
106 浏览

backbone.js - 一页有 2 个分页 - 主干路由

我需要在一页上处理 2 个单独的分页。

目前我只有一个分页,锚只包含简单的主题标签,这些标签由 Route 对象解析,如下所示

HTML

骨干路由器

我将如何一次处理两个分页?

0 投票
1 回答
304 浏览

backbone.js - Trigger.io 和 Backbone-Boilerplate 相对路径

我已经阅读并看到了 Trigger.io + Backbone.js 的实现——我的问题是关于专门使用骨干样板框架。

我将Backbone-Boilerplate与同一作者的 Backbone-LayoutManager 一起用于我的项目。当我使用触发器进行构建时,我的视图根本没有加载。在做了(很多)谷歌搜索之后,我认为它与应用程序的根路径有关,该根路径用于构建通过 AJAX 获取的文件的完整路径。(见https://github.com/tbranyen/backbone-boilerplate/wiki/Relative-path-setup-notes

我按照上面链接中的说明查看是否可以让我的应用程序运行,http://localhost/myapp/而不是http://mypp.local肯定它工作正常。但是,我无法手动设置这些路由以在设备上运行,因为我不确定所有设备上的每个构建将是什么。

关于如何让 Backbone-Boilerplate 模板加载和 Trigger.io 一起玩得很好的任何想法?

0 投票
1 回答
629 浏览

javascript - Backbonejs路由器导航功能不会触发路由器功能

我打电话时没有触发我的路由功能app.navigate("/search#?q="+q, {trigger: true});

路由定义得很好,因为如果我在 navigate() 调用后刷新页面,路由功能就会被正确触发。

有任何想法吗 ?

0 投票
1 回答
376 浏览

backbone.js - Backbonejs 查看渲染最佳方法

我有一个侧边栏视图,其中包含这样的项目列表

现在,我试图在两条不同的路线上显示侧边栏视图,但遇到了一个小问题。在路由 A 上,我希望 dosomething() 方法打印“A”,而在路由 BI 上,我希望 dosomething() 方法打印“B”。所以,我想知道解决这个问题的最佳方法是什么?我想了想,想出了以下两种方法,但似乎都不够优雅。

方法一

制作另一个 SideBarView 并将其命名为 SideBarView2,然后将方法 dosomething 更改为 dosomethingForRouteB。那么我可以将 SideBarView2 用于路由 B。但是,这违反了 DRY 原则;更不用说,假设我想稍后更改 SideBarView 的渲染方法,那么我将不得不在两个不同的地方进行更改。总的来说,我认为这是一个非常糟糕的方法

方法二

在 dosomething() 方法中,我可以有这样的逻辑语句

比方法 1 更优雅一点,但在你的视图中有一个逻辑语句有点太 hacky。

无论如何,我的问题是我应该使用方法 2 还是有更好的方法来解决这个问题?

谢谢

0 投票
1 回答
1538 浏览

javascript - Backbone.js:为什么没有第二次触发事件?

我对 Javascript 和骨干网比较陌生。我正在开发一个简单的初学者级骨干应用程序。我有两个视图:Home 和 NewEntry。在 Home 中,我单击“新条目”以呈现 NewEntry。在 NewEntry 中,我单击“取消”以呈现主页。所以,我想分别点击“取消”和“新条目”在 Home 和 NewEntry 之间切换。

但是,它不起作用。这就是我尝试做的事情:

  1. 在主页上,单击“新条目”。NewEntry 正确呈现。
  2. 在 NewEntry 上,单击“取消”。家庭渲染正确。
  3. 在主页上,单击“新条目”。NewEntry 再次正确呈现。
  4. 在 NewEntry 上,单击“取消”。主页不呈现。与 click 事件关联的方法不会再次触发。

我非常难过!我不知道为什么。我想知道是否有不同的事件正在触发,但我不知道如何。有人知道我应该怎么做吗?

JavaScript:

HTML:

p>

0 投票
2 回答
538 浏览

backbone.js - Backbone.js:单页应用程序、路由和 hrefs 问题

听起来可能有点复杂。

这是 SinglePage,启用 pushState 的应用程序。我有一条路线,用于配置:

我正在使用 tbranyen/backbone-boilerplate方式来导航网址。如果我从仪表板单击 href a href="configure/sites/33,则视图呈现良好。在浏览器 URL 中,我可以看到“localhost:12345/configure/sites/33”。

在配置视图上,我有一个菜单,<a href=里面有一些。

问题是,如果我尝试点击这些链接,它们id就会消失。

浏览器地址栏

预期的href:http://localhost:12345/configure/sites/33/configuration

实际href:http://localhost:12345/configure/sites/configuration

你能解释一下发生了什么以及如何解决它吗?