몇 가지 게시물에서 비슷한 문제를 언급했지만 아주 똑같은 내용은 아닙니다.여러 경로 백본에서 동일한 이벤트가 발생했습니다.
다음은 내 경로 파일의 상단에있는 스 니펫입니다.
각 경로에서 전역 이벤트를 호출하는 방법을 사용하고 있는지 궁금합니다. 내가 사용하는 이벤트는 #items 컨테이너를 지우는 것과 같이 꽤 표준적이고 간단한 이벤트입니다.
위에서 볼 수 있듯이 생성자의 "all"이벤트를 호출 한 다음 routes 파일에 정의 된 여러 메서드를 가리키고 있습니다.
제 질문은 여러 개의 화면에서 같은 글로벌 이벤트를 원합니다. 예를 들어, 모든 "카탈로그"화면. 나는 당신이 상상할 수있는 확신으로 나는 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
미리 감사드립니다. 나는 백본으로 점점 더 경험이 많았지 만 분명히 배울 점이 많습니다. 일반적인 작업을 부착으로
"catalogs/:id(/page/:page_id)"
:
경로 테이블 자체 DRY-다움의 측면에서
이것은 아름답습니다! 고맙습니다. 매우 영리한 아이디어, 그리고 지금까지는 _.compose에 대해 알지 못했습니다. 매우 시원합니다. –