问题标签 [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 投票
0 回答
467 浏览

javascript - Backbone JS 自动路由回默认值

我刚刚开始了 Backbone JS SPA(单页应用程序)的基础工作。我正在使用基本的下划线模板支持,并且遇到了意外路由的问题。

基本上,注册视图最初按预期显示,当我单击按钮时成功发布,我让它导航到一个简单的测试视图。但是,测试视图很快被渲染,然后我再次被重新路由到默认注册视图。

我看到了测试页面的历史记录,如果我点击后退按钮,我会回到那个工作正常的测试视图。我看到在 Backbone 中触发了一些事件,将我路由回空白片段(注册页面),但我不知道为什么。我尝试在导航呼叫上弄乱替换和触发选项,但没有运气。

作为旁注,start() 和 stop() 视图函数改编自这篇文章: http: //lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions-in-backbone -应用程序/。我尝试删除它并没有效果。

我的 HTML 页面只是引入了相关的脚本,并且有 div 元素 bodyTarget,它在加载时注入了视图。

编辑:呃,我发现了问题。事实证明,我需要通过返回 false 来防止对 signUp() 的调用的事件传播。

0 投票
2 回答
2293 浏览

backbone.js - 异步添加骨干路由。

我被一个大的主干应用程序困住了。

它在主应用程序中运行不同的应用程序。我们希望将应用程序和路由异步添加到大应用程序中。

我现在要做的是在加载主应用程序后使用 Require.JS 异步添加不同的应用程序。要将新路线添加到主要路线,我会停止历史并添加新路线并重新开始历史。这可行,但它有一个主要缺点。每次我去 (app.navigate('x',true);) 时,一条新的现有路径都会触发路由,因为我有 history.started 的次数。还有所有的视图渲染。

这会大大降低应用程序的速度,并且完全低效。

有没有办法动态添加新路线而无需 history.stop/start?

0 投票
0 回答
541 浏览

javascript - IE中的骨干路由+ URL重写

在处理主干路由时,我遇到了一个特殊的问题。

我们的应用程序托管在 中example.com/photo/index.php,我们想在其上挂钩一个事件,该事件在触发时会在地址栏中显示为example.com/photo/<ID>. 下面是我们如何设置重写规则和路由器设置:

Backbone.Router.extend 内部:

路由器实例化后:

这在 Firefox/Chrome/Safari 中效果很好,但在 IE9 中,您必须使用 访问事件挂钩example.com/photo/#photo/<ID>,这不是很酷。

所以我们尝试在 ( ) 上切换 pushState 选项pushState: true,希望它能有所帮助,但现在example.com/photo/<ID>在 IE9 中访问时,页面将被重定向到example.com/#photo/<ID>,并实际显示example.com/index.php.

我想(?)如果我们将事件挂钩 URL 更改为类似的东西,这可能不是问题example.com/photo/view/<ID>,但是我们不能触及那部分。

无论如何,无论有没有 pushState example.com/photo/<ID>example.com/#photo/<ID>是否可以example.com/photo/#<ID>在 IE9 下按预期工作?

0 投票
2 回答
449 浏览

javascript - IE 中的骨干路由 - 去掉 # 符号?

使用 Backbone 路由时,有什么方法可以阻止#出现在地址栏中,pushState 与否?

0 投票
1 回答
1142 浏览

backbone.js - 如何使用视图实现 Backbone 样板

我正在努力学习骨干,但说实话,我感到有点不知所措。我所看到的每一个地方都以稍微不同的方式完成,每个都有更多的框架和插件需要学习。所以我决定相信 Addy Osmani 并且正在阅读他的 Backbone Fundamentals 书。我遵循了他的建议并使用了 Backbone-Boilerplate。但是无论出于何种原因,我都无法成功安装 Grunt BBB,因此无法下载工作示例。

我想做的是遵循这个路由器部分并使用视图。http://addyosmani.github.com/backbone-fundamentals/#router.js

问题是我认为这些说明是不完整的。首先,collection.fetch() 变量在错误的范围内,我真的不明白我需要在哪里放置视图以及如何放置。我很确定,如果我能看到一个可行的例子,我就能理解它,但正如我所说,我在任何地方看到的都是不同的实现。

有谁知道如何将骨干样板与路由器和视图一起使用?任何地方都有工作示例吗?

0 投票
1 回答
1089 浏览

backbone.js - 骨干路由器不接功能

我尝试使用带有 pushstate 的骨干:

问题是,每当我单击这样的链接之一时:

浏览器中的位置更改而无需重新加载,但与它相关联并且我已经在路由中定义的功能不会执行。知道我做错了什么吗?

0 投票
1 回答
670 浏览

backbone.js - 使用 file:// 触发和骨干路由器

我正在使用触发器和主干,并尝试以编程方式导航到一个 url。这一切都是使用 file:// 协议发生的,因为一切都只在触发器 io 中运行。

虽然此手动导航不会触发与路线关联的功能。

我的路由器看起来像这样

我正在手动导航

navigate_to 方法只是以“file://users/sign_up”的形式返回完整的 url。

但是控制台没有记录任何内容,并且执行正常进行。我在这里错过了什么吗?

0 投票
1 回答
391 浏览

javascript - 是否使用骨干路由器/历史

我正在创建一个由主干驱动的小部件的集合(因为没有更好的词)。消费者会将小部件放入他们的 Web 应用程序并对其进行初始化。我需要跟踪某些小部件的历史记录,但不一定需要/想要将内容实际注入浏览器的历史记录更新 URL。.navigatereplacetrigger选项似乎很有用。我不想干扰应用程序当前对浏览器的 URL/历史所做的任何事情,除非他们选择这样做(如果有的话)。

  1. 不想更新 URL(除非选择加入)
  2. 不想将事件插入浏览器历史记录(除非选择加入)
  3. 确实希望能够跟踪历史记录(一个简单的数组可能就足够了,但是能够随意选择加入项目的 1 和 2 是一个很大的好处)

骨干网的路由器/历史功能似乎适合我的用例,还是我应该推出自己的解决方案?

0 投票
1 回答
122 浏览

backbone.js - 骨干网.js不加载路线

我现在在几个项目中一直在使用backbone.js 没有问题,而且我刚刚开始了一个新项目,但是对于我的生活,我无法加载路由。我在 chrome 开发人员工具中没有收到任何错误,但我也无法获得简单的触发警报。

当我在开发人员工具中查看我的代码时,我的 router.js 文件和所有内容。

application.js - 警报在此页面中工作

我的 router.js - 这些警报不会被触发

0 投票
1 回答
1092 浏览

backbone.js - Bootstrap scrollspy 和骨干路由

当我使用基于 Backbone.js 哈希的路由时,我将如何使用 Bootstrap 的 Scrollspy?

骨干路由器示例,创建页面 www.example.com/#somePage/123

Twitter scrollSpy 示例应该将 #anchor-value 附加到 URL 的末尾:

这想将 URL 转换为 www.example.com/#somePage/123#step1 之类的东西,但这是行不通的。