버튼을 클릭하면 내 사용자를 등록 URL로 라우트하고 내 라우터에서 내 register
기능을 시작하고 등록보기를 렌더링하는 버튼이 있습니다. 유일한 문제는 잘못 라우팅 된 것 같습니다. 여기 Backbone.Marionette : 올바르게 라우팅되지 않는 라우터
template = require './templates/landing'
app = require '../application'
module.exports = class LandingView extends Backbone.Marionette.ItemView
id: 'landing-view'
template: template
events:
'click .splash .get-started': 'route_register'
route_register: (e) ->
e.preventDefault()
console.log 'button clicked'
app.router.navigate('/register', {trigger: true})
여기 내 라우터의 내 랜딩 페이지 뷰에서
application = require('application')
HomeView = require('views/HomeView')
LandingView = require('views/LandingView')
RegisterView = require('views/RegisterView')
module.exports = class Router extends Backbone.Router
routes:
'': 'landing'
'/home': 'home'
'/register': 'register'
landing: =>
console.log 'in router: landing'
lv = new LandingView()
application.layout.content.show(lv)
home: =>
console.log 'in router: home'
hv = new HomeView()
application.layout.content.show(hv)
register: =>
console.log 'in router: register'
rv = new RegisterView()
application.layout.content.show(rv)
버튼을 클릭하면, 나는 CONSOLE.LOG에서 얻을 크롬 도구. 하지만 라우터에서 콘솔 로그를 얻지는 못합니다. 이것은 내 라우터를 잘못 인스턴스화 믿고 저를 주도하지만, 여기에 내가 할 방법은 다음과 같습니다
또한class Application extends Backbone.Marionette.Application
initialize: =>
@on("initialize:after", (options) =>
Backbone.history.start();
# Freeze the object
Object.freeze? this
)
@addInitializer((options) =>
# Instantiate the main layout
AppLayout = require 'views/AppLayout'
@layout = new AppLayout()
@layout.render()
)
@addInitializer((options) =>
# Instantiate the router
Router = require 'lib/router'
@router = new Router()
)
, URL 표시 줄에 주소 chanages, 예를 들어, 나는 랜딩 페이지 버튼에서 URL 변경을 클릭합니다 localhost:3000
~ localhost:3000/register
, 아직 라우터에 console.log가 표시되지 않으며 페이지가 렌더링되지 않습니다.
누구든지이 버그를 해결할 수 있습니까?