webentwicklung-frage-antwort-db.com.de

Backbone.js - Nach dem "click" -Ereignis in einer Ansicht zu einer Route navigieren

Meine "Ansicht" ist wie folgt eingerichtet. einfach.

var ItemView = Backbone.View.extend({
  tagName : "li",

  events : {
    "click" : "display"
  },

  display : function() {
    //app.navigate('item'); // take me to my route!
  }
});

Und ich habe meinen Router

var App = Backbone.Router.extend({

  routes: {
    "" : "index",
    "item" : "view_item"
  },

  index: function() {
    alert('hi!');
  },

  view_item: function() {
    alert('bye!');
  }
});

app = new App();
Backbone.history.start();

Wenn ich jetzt auf ItemView klicke, sollte es die "display" -Methode ausführen und ich möchte, dass die Anzeigemethode mich zu der Route führt, die ich in route "item" angegeben habe.

Ist das möglich? Ich dachte, "navigieren" Funktion wird funktionieren, aber es funktioniert nicht. Wie kann ich das erreichen?

30
ericbae
 display : function() {
    app.navigate('item', true);
  }

Sie müssen den zweiten Parameter auf true setzen.

Aus der Backbone-Dokumentation:

navigaterouter.navigate (fragment, [triggerRoute]) Wenn Sie einen Punkt in Ihrer Anwendung erreichen, den Sie als URL speichern möchten, rufen Sie den Navigator auf, um die URL zu aktualisieren. Wenn Sie auch die Routenfunktion aufrufen möchten, übergeben Sie triggerRoute.

49
Skylar Anderson

Oder Sie können dies direkt von HTML aus tun, wenn Sie das Tag "<a>" verwenden.

beispiel:

<a href="#item">Show Itens</a>

Es funktioniert auch, ich bevorzuge diesen Weg, wenn dies natürlich möglich ist.

0
rcarvalho