Ich muss es verlieren. Ich habe die einfachste Backbone-App eingerichtet, kann aber keine Routen zum Antworten bekommen. Hier ist mein Router (in Coffeescript):Backbone reagiert nicht auf Routen
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')
Und ich bekomme den ganzen Zug in Bewegung mit:
<div id="tickets"></div>
<script type="text/javascript">
$(function() {
window.router = new BackboneSupport.Routers.TicketsRouter();
Backbone.history.start();
});
</script>
Wie zu erwarten, die Wurzel Route (Index) auffüllt #tickets
mit Platzhalter-Text und erfolgreich navigiert auf die/neue Route (bestätigt über die Adressleiste), jedoch keine Warnung, dh die Methode newTicket
wird nicht ausgelöst.
Was fehlt mir hier?
UPDATE:
Per RJZ unten, ich die Navigate-Methode aktualisiert:
@navigate('/new', {trigger: true})
Aber seltsam, noch keine Warnung:/
Yup. Sie möchten die Trigger-Option als true übergeben, um den Navigationsaufruf 'newTicket' aufzurufen. Siehe http://documentcloud.github.com/backbone/#Router-navigate für Details :-) – rjz
Hah! Vielen Dank. Siehe mein Update, da es die neue Route immer noch nicht auslöst. – imderek