2012-04-15 71 views
1

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:/

+0

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

+0

Hah! Vielen Dank. Siehe mein Update, da es die neue Route immer noch nicht auslöst. – imderek

Antwort

5

Sie sollten nicht die führende slash haben Auf Ihrer Route möchten Sie Folgendes:

class BackboneSupport.Routers.TicketsRouter extends Backbone.Router 
    routes: 
    "new": "newTicket" 
    ".*" : "index" 
    #... 

Demo: http://jsfiddle.net/ambiguous/veSDF/1/

Vom fine manual:

verlängernBackbone.Router.extend(properties, [classProperties])

[...] Beachten Sie, dass Sie werden mit einem führenden Schrägstrich in Ihrer Route Definitionen zu vermeiden:

+0

Bingo! Danke mein Herr. – imderek

Verwandte Themen