我必须失去它。我设置了最简单的Backbone应用程序,但似乎无法获得路线回复。这里是我的路由器(在CoffeeScript中):骨干对路线没有反应
class BackboneSupport.Routers.TicketsRouter extends Backbone.Router
initialize: ->
@tickets = new BackboneSupport.Collections.TicketsCollection()
routes:
"/new" : "newTicket"
".*" : "index"
newTicket: ->
alert 'hi, from the new ticket route'
index: ->
// just to prove a point
$('#tickets').html('tickets go here')
@navigate('/new')
我也得到了整个列车移动:
<div id="tickets"></div>
<script type="text/javascript">
$(function() {
window.router = new BackboneSupport.Routers.TicketsRouter();
Backbone.history.start();
});
</script>
正如你所期望的根路径(指数)填充#tickets
与占位符文本,并成功地导航到/新路线(通过地址栏确认),但它不会提示任何事情,这意味着newTicket
方法未被触发。
我在这里错过了什么?
UPDATE:
每低于rjz,我更新了导航方法:
@navigate('/new', {trigger: true})
但奇怪的是,仍然没有警觉:/
是。您需要将触发器选项设置为true,以导航调用'newTicket'。有关详细信息,请参阅http://documentcloud.github.com/backbone/#Router-navigate :-) – rjz 2012-04-15 17:06:15
哈!谢谢。看到我的更新,因为它仍然不启动新的路线。 – imderek 2012-04-15 17:11:28