我看到一些帖子引用了类似的问题,但并不完全相同。
这是我的路线文件顶部的一个片段。
我想知道我使用的方法是否可以在每条路线上调用全局事件。我使用的事件是非常标准的简单事件,例如清除#items 容器。
如您所见,我在构造函数中调用“all”事件,然后指向路由文件中定义的几个方法。
我的问题是,假设我想在多个屏幕上显示相同的全局事件;比如说,所有的“目录”屏幕。我一直在做一些奇怪的,公认的hacky技巧来获得ou
@routeName = route.split(":")[1]
# only substantiate the dropdown on User Catalog screen.
if @routeName is "catalogScreen" or @routeName is "catalogPDFScreen"
我相信你可以想象,这并不理想,也不是特别干净。我只是想找到方法来干燥我的路由器文件以捕获所有这些全局事件,这是我能想到的最好的方法。
routes:
"" : "homeScreen"
"catalogs" : "catalogsScreen"
"catalogs/:id" : "catalogScreen"
"catalogs/:id/page/:page_id" : "catalogScreen"
"catalogs/:id/pdf" : "catalogPDFScreen"
"catalogs/:id/pdf/page/:page_id" : "catalogPDFScreen"
"catalogs/:id/category/:category_id" : "categoryScreen"
"departments/:id" : "departmentScreen"
"notifications" : "notificationsScreen"
"settings" : "settingsScreen"
"products/:id" : "productScreen"
"catalog/:catalog_id/search/:search_query": "searchCatalogScreen"
"search/:search_query" : "searchScreen"
"login" : "loginScreen"
"members/:member_id/catalogs/:catalog_id" : "userCatalogScreen"
"members/:member_id" : "profileScreen"
":user_name/:catalog_name" : ""
#extends router class to allow storing of routes for a history
constructor: (options) ->
@on "all", @storeRoute
@on "all", @clearAlerts
@on "all", @clearScroll
@on "all", @setSearch
@on "all", @setNav
提前感谢任何人对此的帮助!我在 Backbone 方面的经验越来越丰富,但我显然还有一些东西要学。