草庐IT

javascript - 二维菜单 Backbone 路由器 : advice

coder 2024-12-21 原文

我是 backbone.js 的初学者。
我的页面导航如下所示:

左侧导航定义了四种 View 类型,而顶部导航应该更新数据模型并重新呈现当前 View (这就是我的想法)。
我想允许用户根据他/她的个人喜好为当前 View 和类别添加书签(并且可能将设置存储在浏览器的本地存储中)。
这两个菜单可以互换使用,这意味着用户可以决定显示与当前类别模型不同的 View ,并且用户可以在当前 View 中选择不同的类别。

我在弄清楚如何以稳定的方式为此配置我的路由器时遇到了一些麻烦。
请注意,此路径后面可能还有其他参数,例如根据 profile_id 在 map 上显示事件标记。

现在,我有了这样的想法:

var AppRouter = Backbone.Router.extend({
        routes: {
            ":view/:category": "aggregatefunction" 
        }
    });

但我不确定这是否会引导我找到我需要的东西。
因为我想互换使用菜单并使它们成为书签,所以我已经陷入了创建链接的困境。

你能给我一些关于结构的建议并告诉我潜在的陷阱以帮助我吗?
当然也欢迎任何补充建议。
谢谢

编辑
为了奖金,我想多读几个意见。
我仍然在动态构建和调整菜单 anchor 标记中的 href 时遇到一些麻烦,同时能够触发事件(更改类别/或更改 View )。 我正在寻找这个问题的最稳定的解决方案。
如果可能的话,每个插图都附有一些代码。
谢谢。

最佳答案

嗯,我认为一种看待这个问题的方法是,最重要的部分是 View ,类别实际上不太重要,它们可以被视为过滤器。拥有一个 View 而没有一个类别(查看“全部”)甚至可能是有意义的,但在这里我只是猜测您的应用程序可以做什么...

我之所以这么说,是因为我假设您将拥有 4 个主干 View ( map 、直播、RSS 等),但没有针对这些类别的特定 View 。所以当切换类别时,你实际上并没有切换 View ,你只是用不同的参数重新渲染它,对吗?

那么对我来说,路由器应该是这样的:

'map/:category': '_map'
'rss/:category': '_rss'
...

每个主视图一个路由,类别作为回调的参数。人们然后可以将 url 添加为书签,例如 #map/events 或 #rss/places_to_eat 但在内部,您正在管理 4 个干净的 View 。

稍后,使用 splats 允许一次显示多个类别的 View 会更容易(splats 在路由定义中以 * 开头)。

只是我的两分钱!

关于javascript - 二维菜单 Backbone 路由器 : advice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20351925/

有关javascript - 二维菜单 Backbone 路由器 : advice的更多相关文章

  1. ruby-on-rails - Rails 3 中的多个路由文件 - 2

    Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题

  2. ruby - rails 3 redirect_to 将参数传递给命名路由 - 2

    我没有找到太多关于如何执行此操作的信息,尽管有很多关于如何使用像这样的redirect_to将参数传递给重定向的建议:action=>'something',:controller=>'something'在我的应用程序中,我在路由文件中有以下内容match'profile'=>'User#show'我的表演Action是这样的defshow@user=User.find(params[:user])@title=@user.first_nameend重定向发生在同一个用户Controller中,就像这样defregister@title="Registration"@user=Use

  3. ruby-on-rails - Rails 3,嵌套资源,没有路由匹配 [PUT] - 2

    我真的为这个而疯狂。我一直在搜索答案并尝试我找到的所有内容,包括相关问题和stackoverflow上的答案,但仍然无法正常工作。我正在使用嵌套资源,但无法使表单正常工作。我总是遇到错误,例如没有路线匹配[PUT]"/galleries/1/photos"表格在这里:/galleries/1/photos/1/edit路线.rbresources:galleriesdoresources:photosendresources:galleriesresources:photos照片Controller.rbdefnew@gallery=Gallery.find(params[:galle

  4. ruby-on-rails - Rails - 从命名路由中提取 HTTP 动词 - 2

    Rails中有没有一种方法可以提取与路由关联的HTTP动词?例如,给定这样的路线:将“users”匹配到:“users#show”,通过:[:get,:post]我能实现这样的目标吗?users_path.respond_to?(:get)(显然#respond_to不是正确的方法)我最接近的是通过执行以下操作,但它似乎并不令人满意。Rails.application.routes.routes.named_routes["users"].constraints[:request_method]#=>/^GET$/对于上下文,我有一个设置cookie然后执行redirect_to:ba

  5. ruby-on-rails - 如何在 Rails 中设置路由的默认格式? - 2

    路由有如下代码:resources:orders,only:[:create],defaults:{format:'json'}resources:users,only:[:create,:update],defaults:{format:'json'}resources:delivery_types,only:[:index],defaults:{format:'json'}resources:time_corrections,only:[:index],defaults:{format:'json'}是否可以使用1个字符串为所有资源设置默认格式,每行不带“默认值”散列?谢谢。

  6. ruby-on-rails - 使用 javascript 更改数据方法不会更改 ajax 调用用户的什么方法? - 2

    我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的

  7. Ruby -> 写入二维数组 - 2

    我正在处理http://prepwork.appacademy.io/mini-curriculum/array/中概述的数组问题我正在尝试创建函数my_transpose,它接受一个矩阵并返回其转置。我对写入二维数组感到很困惑!这是一个代码片段,突出了我的困惑。rows=[[0,1,2],[3,4,5],[6,7,8]]columns=Array.new(3,Array.new(3))putscolumns.to_s#Outputisa3x3arrayfilledwithnilcolumns[0][0]=0putscolumns.to_s#Outputis[[0,nil,nil],[

  8. ruby - cucumber 的路由问题 - 2

    我正在使用rails3和cucumber,除了这个小问题,一切都很顺利GivenIamonthe"editautomobile"pageNoroutematches{:controller=>"automobiles",:action=>"edit"}(ActionController::RoutingError)现在路径在paths.rb中设置为edit_automobile_path在routes.rb中我有汽车作为资源,我搭建了它所以请告诉我我遗漏了什么,清楚地定义了路线并且匹配,因为我运行了rake路线并看到了路线。请指出正确的方向 最佳答案

  9. ruby - Rails 路由 : Giving default values for path helpers - 2

    有什么方法可以为url/path助手提供默认值吗?我有一个可选范围环绕我的所有路线:#config/routes.rbFoo::Application.routes.drawdoscope"(:current_brand)",:constraints=>{:current_brand=>/(foo)|(bar)/}do#...allotherroutesgohereendend我希望用户能够使用这些URL访问网站:/foo/some-place/bar/some-place/some-place为了方便起见,我在我的ApplicationController中设置了一个@current

  10. ruby-on-rails - 将 Rails 路由助手作为类方法添加到类中 - 2

    我如何将像“root_path”这样的Rails路由助手作为类方法添加到像my_model.rb这样的类中?所以我的课是这样的:ClassMyModeldefself.fooreturnself.root_pathendendMyModel.foo以上不起作用,因为ClassMyModel不响应root_path这是我所知道的:我可以使用includeRails.application.routes.url_helpers,但这只会将模块的方法添加为实例方法我试过扩展Rails.application.routes.url_helpers但它没用请随时给我上课:)

随机推荐