Tenho uma série de botões que, quando clicados, exibem um menu pop-up posicionado logo abaixo do botão. Quero passar a posição do botão para a visualização. Como eu posso fazer isso?
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
fonte
fonte
this.options
, mas você pode fazer isso sozinho, se preferir." .this.options.position
, nãooptions.position
. As visualizações costumavam anexar osinitialize
argumentos,this.options
mas isso parou de acontecer em 1.1.0.Adicione um argumento de opções a
initialize
:E então passe algumas opções ao criar sua visualização:
Para mais informações: http://backbonejs.org/#View-constructor
fonte
this.options
me dá pesadelos de manutenção e depuração.this.options
initialize: function(options) { ... }
está tudo bem, a mudança é que o Backbone não define mais automaticamentethis.options
para você: "Visualizações do Backbone não anexam mais automaticamente as opções passadas para o construtor comothis.options
, mas você pode fazer isso sozinho, se preferir." .A partir do backbone 1.1.0, o
options
argumento não é mais anexado automaticamente à visualização (consulte o problema 2458 para discussão). Agora você precisa anexar as opções de cada visualização manualmente:Como alternativa, você pode usar este mini-plug - in para anexar automaticamente as opções da lista branca, como:
fonte
passe de outro local
Adicione um argumento de opções para inicializar em vista que você está recebendo a variável passada,
para obter o valor de uso -
fonte
Use this.options para recuperar o argumentr em vista
Exemplo de trabalho: http://jsfiddle.net/Cpn3g/1771/
fonte