问题标签 [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.
internet-explorer - IE中的骨干路由器
当用户点击某些 URL 路由时,我正在使用 Backbone.js 路由器触发某些初始化方法。因此,/posts/1
通过 vanilla 锚标记应该触发与/posts/:id
我的 Backbone 路由器相关联的任何回调。设置时,这在现代浏览器中运行良好Backbone.history.start({ pushState : true })
。但是,在 IE中,尝试点击的用户/posts/1
将被重定向到/#posts/1
,这只是我的主页,带有无意义的哈希字符串。
需要明确的是,我不需要 pushState。我不想将URL推送到浏览器历史记录。我只是想阅读它们,然后触发回调,这在任何浏览器中都应该是可行的。
看起来像简单的功能,但我很难过。
谢谢!
backbone.js - 只有一条路线的backbone.js 历史?
我正在开发我的第一个骨干项目,但我有一些不知道如何满足的要求。我确定解决方案与正确路由我的应用程序有关,但我不确定......
我有三个观点:
我遇到的问题是,我们希望我们的用户能够使用后退按钮导航回初始搜索,并从那里再次前进到他们的搜索结果。我只是不知道该怎么做。任何帮助都将是巨大的帮助。
谢谢!
backbone.js - 传递给路由的查询包含/时的主干.js路由
我的应用程序基本上接受一些表单输入并返回一组结果。我有两条路线
如果查询包含任何字符 / 特别(在这种情况下可能完全发生),它们将被添加到 URL 并且我的路由中断。
我已经尝试过使用encodeURI()
并且encodeURIComponent()
有点我没有任何运气。你们这些人是怎么处理这些事情的?
backbone.js - 如何使用骨干网在 IE8 和 IE10/现代浏览器之间获得一致的 PushState 链接?
我在 Chrome 中,我复制我的网址:“http://www.example.com/a/123456789”并将其粘贴到 IE8 中。它工作正常,因为我的路线设置正确。
如果我然后导航到其他地方,我会得到预期的 IE8 后备 URL:“http://www.example.com/a#a/123456789”(注意哈希),一切都很好。
这就是问题所在...
现在,如果我复制带有哈希的链接 (http://www.example.com/a#a/123456789) 并将其粘贴到现代浏览器中,它会将我转储到http://www.example.com/a#一个。
有人有这种行为的经验吗?
backbone.js - 路由和事件——backboneJS
我应该如何处理 BackboneJS 中的路由?路由时,在新建视图后,我应该触发事件还是直接渲染视图?
以下是两种情况:
触发事件:
在我看来,我有:
或者,我应该走这条路:
在我看来,我有:
我认为这是第一种情况——考虑到主干是事件驱动的,但第二种情况显然有更少的代码。
另外,我想第三种情况是将视图代码保留在第一种情况中,但抓住第二种情况的路由器情况......在导航上渲染视图,但如果我想在其他地方触发它,则公开一个事件。
想法?
json - Backbone.js - 如何在不同的路由上从 JSON 加载列表或单个项目?
我刚刚通过为自己创建一个简单的投资组合网站开始使用 Backbone.js。目前没有太多功能,但我希望在熟悉该库后添加更多更多功能。我正在使用 json 来填充站点的数据,该站点要么列出我的所有投资组合项目,要么根据路线显示其中一个。我有工作/显示的投资组合项目列表,但我很难只显示特定路线的一个项目(例如 /#projects/2),这是我需要帮助的地方。
在我开始学习 Backbone 时,我试图让一切尽可能简单,并且看过各种样板和教程,但没有一个对我有很大帮助。
在这些路线上,我希望发生这种情况:
- / - 投资组合项目列表
- /#projects - 投资组合项目列表
- /#projects/3 - 一个投资组合项目
我已将尝试放入 JSbin,但它不起作用,因为我不知道如何正确加载 json...
我确定我的问题出现了,因为我将所有项目加载到集合而不是模型中。那正确吗?
- 我怎样才能使这项工作?
- 我该如何改进呢?
[编辑 - - - - - - - - - - ]
在下面彼得非常友好的帮助之后,我仍然需要帮助。他说:
一个视图显示 1 个模型,一个集合视图显示一个视图列表,每个模型一个。
那么,如何创建一个视图来显示 json 数据中的一项,然后创建集合视图来显示所有这些?我问的原因是因为我可以毫无问题地退回所有物品,但事实证明退回一件物品非常棘手。
我也更新了我的代码示例:http: //jsbin.com/asezul/8/edit
[ - - - - - - - - - - -编辑]
如果您需要更多信息,请告诉我,我是 Backbone 的新手,可能错过了有助于回答我的问题的重要部分。
这是一些代码摘录,但我建议在 JSbin 中查看代码:
该模型:
收藏:
一个看法:
路由器:
backbone.js - 仅在 Firefox 中的 Backbone 应用程序中的事件后获取“this.model is undefined”
我试图了解 Backbone 和它的概念。我制作了一个简单的应用程序,以便我可以学习如何更多地了解 Backbone.Router 以及如何将 Backbone 与 Require.js 集成。
该应用程序在 Chrome、IE9 和 Safari 中运行良好,但在最新版本的 Firefox 中,它在触发和消耗点击事件后抛出“TypeError:this.model is undefined”错误。非常感谢您的帮助!
为方便起见,我在下面附上了整个应用程序的链接。
https://dl.dropbox.com/u/19138757/Backbone_Example.zip
我将评论发生错误的方法:
文档.js
文档.js
路由器.js
backbone.js - Safari 两次触发 Backbone 路由
我对 Safari 中的 Backbone 路由器感到头疼
我有这段代码:
在我的路由器中:
在 chrome 中,它按预期工作,URL 被路由并且 askSearch 函数被调用一次
然而,在 Safari 中,askSearch 函数实际上被执行了两次
当我尝试
在 chrome 中,askSearch 函数没有按预期调用,但在 Safari 中它实际上被调用了一次
我已经运行了调试器,并且很确定 app.navigate 行总是只被调用一次,除了路由器本身之外,没有其他东西可以触发 askSearch 函数
现在我知道我可以通过检测浏览器类型来解决这个问题,但是我在网上没有发现任何类似的问题,似乎人们没有这个问题,我在这里做错了什么吗?
backbone.js - Backbone.js 路由器在放置时触发,而不是在发布时触发
所以我一直在使用基本的 Backbone.js 创建一个简单的演示页面,它是一个基本的用户管理器。无论是创建(POST)还是更新(PUT)用户信息,我都会运行相同的功能。POST 和 PUT 请求都成功(IE 调用我的“成功”函数)但是只有 PUT 命令会触发路由器,POST 请求不会触发同一行代码,而它会触发成功函数。
下面是我的事件代码。saveUser 函数同时处理 PUT 和 POST 请求,但成功的路由器仅从成功的 PUT 请求触发,而不是从成功的 POST 请求触发(即使两者都成功更新数据库)。
这是路由器代码:
任何帮助,将不胜感激!
谢谢!
backbone.js - Backbone js 路由/视图关系
我正在使用 Meteor 构建应用程序,但无法理解 Routes 和 Views 之间的关系。我的路由器工作正常,但是在对调用新视图进行研究后感到困惑。
我使用 App.navigate 吗?我是否称其为:
在适当的路由器功能范围内?这是我正在使用的代码(有效),我的应用程序只有两个页面 - 索引页面和项目视图: