Ich habe eine Reihe von Schaltflächen, die beim Klicken ein Popup-Menü direkt unter der Schaltfläche anzeigen. Ich möchte die Position der Schaltfläche an die Ansicht übergeben. Wie kann ich das machen?
ItemView = Backbone.View.extend({
tagName: 'li',
events: {
'click': 'showMenu'
},
initialize: function() {
_.bindAll(this, 'render');
},
render: function() {
return $(this.el).html(this.model.get('name'));
},
showMenu: function() {
var itemColl = new ItemColl();
new MenuView({collection: itemColl}); // how to pass the position of menu here?
}
});
quelle
this.options
wurden. Sie können dies jedoch selbst tun, wenn Sie dies bevorzugen." .this.options.position
nichtoptions.position
. Ansichten, mit denen dieinitialize
Argumentethis.options
angehängt wurden , aber das ist in 1.1.0 nicht mehr passiert.Fügen Sie ein Optionsargument hinzu zu
initialize
:Und geben Sie dann einige Optionen ein, wenn Sie Ihre Ansicht erstellen:
Für weitere Informationen: http://backbonejs.org/#View-constructor
quelle
this.options
gibt mir Wartung und Debugging von Albträumen.this.options
initialize: function(options) { ... }
ist in Ordnung, die Änderung ist, dass Backbone nicht mehr automatischthis.options
für Sie festlegt : "Backbone-Ansichten hängen nicht mehr automatisch Optionen an, die an den Konstruktor als übergeben wurdenthis.options
, aber Sie können es selbst tun, wenn Sie es vorziehen." .Ab Backbone 1.1.0 wird das
options
Argument nicht mehr automatisch an die Ansicht angehängt (siehe Ausgabe 2458 für Erläuterungen). Sie müssen jetzt die Optionen jeder Ansicht manuell anhängen:Alternativ können Sie dieses Mini-Plugin verwenden , um Optionen auf der weißen Liste automatisch anzuhängen, wie z.
quelle
von einem anderen Ort passieren
Fügen Sie ein Optionsargument hinzu, um die Ansicht zu initialisieren, dass Sie die übergebene Variable erhalten.
um den Wert zu erhalten verwenden -
quelle
Verwenden Sie diese Optionen , um argumentr in der Ansicht abzurufen
Arbeitsbeispiel: http://jsfiddle.net/Cpn3g/1771/
quelle