Tengo una serie de botones que, cuando se hace clic, muestran un menú emergente ubicado justo debajo del botón. Quiero pasar la posición del botón a la vista. ¿Cómo puedo hacer eso?
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?
}
});
javascript
backbone.js
vikmalhotra
fuente
fuente
this.options
, pero puede hacerlo usted mismo si lo prefiere". .this.options.position
, nooptions.position
. Vistas utilizadas para adjuntar losinitialize
argumentos,this.options
pero eso dejó de suceder en 1.1.0.Agregue un argumento de opciones a
initialize
:Y luego pase algunas opciones cuando cree su vista:
Para obtener más información: http://backbonejs.org/#View-constructor
fuente
this.options
me da mantenimiento y depuración de pesadillas.this.options
initialize: function(options) { ... }
está bien, el cambio es que Backbone ya no establece automáticamentethis.options
: "Backbone Views ya no adjunta automáticamente opciones pasadas al constructor comothis.options
, pero puede hacerlo usted mismo si lo prefiere". .A partir de backbone 1.1.0, el
options
argumento ya no se adjunta automáticamente a la vista (consulte el problema 2458 para obtener más información). Ahora necesita adjuntar las opciones de cada vista manualmente:Alternativamente, puede usar este mini complemento para adjuntar automáticamente las opciones de la lista blanca, así:
fuente
pasar de otro lugar
Agregue un argumento de opciones para inicializar en vista de que está obteniendo esa variable pasada,
para obtener el valor de uso -
fuente
Utilice this.options para recuperar argumentr en la vista
Ejemplo de trabajo: http://jsfiddle.net/Cpn3g/1771/
fuente