Eu sou um fã de definir atributos dentro de uma visão como tal ...
Backbone.View.extend ({ atributos: { data-attr: 'mydata' } });
... no entanto, isso gera um erro devido ao hífen na chave "data-attr".
SyntaxError não capturado: token inesperado -Sei que esse é um token ilegal em um objeto de valor-chave JavaScript, mas esperava que o Backbone oferecesse alguma solução para isso, visto que a transmissão de atributos de dados é um dos cenários mais prováveis. Tenho trabalhado em torno disso definindo o atributo dentro da função de renderização usando jQuery:
render: function () { this. $ el.attr ('data-attr', 'mydata "'); }
Isso funciona, mas pensei em perguntar se há outra opção.
Sim - é apenas um objeto JavaScript. Use as chaves entre aspas.
attributes: {
"data-attr": "mydata"
}
Ahh, pensei ter tentado isso! Obrigado!
O que você sugere para passar um atributo de dados para o elemento DOM da View a partir dos atributos dentro do Model da View? Como tal...
atributos: { "data-attr": this.model.foo }
Estou perdendo espaço para referência a "isso".
TypeError não capturado: Não é possível ler a propriedade 'modelo' de indefinido
Você pode usar uma função como esta:
attributes: function() {
return {
'data-attr': this.model.foo
};
}
Incrível. Isso funciona perfeitamente. Obrigado pelas respostas rápidas!
Você é bem-vindo, mas no futuro, por favor, não use os tíquetes de bug para suporte técnico como este - tente o canal IRC ou a lista de discussão primeiro.
Feliz por. Eu tentei isso primeiro, mas há apenas um outro usuário no DocumentCloud IRC, Turjakas, que não estava respondendo.
Deve ter digitado incorretamente - há 242 pessoas no #documentcloud no freenode no momento.
Comentários muito úteis
Você pode usar uma função como esta: