Zasadniczo co potrzebne jest, aby zrobić coś takiegoJak mogę dynamicznie ustawić nazwę klasy dla widoku Backbone.js na podstawie jego atrybutów modelu?
App.CommentView = Backbone.View.extend({
className: function() {
if (this.model.get('parent_id')) {
return 'comment comment-reply';
} else {
return 'comment';
}
},
Problem polega na tym, że w funkcji przekazany do className
jest wykonywany w kontekście html szablonu widoku, więc nie mogę nazwać this.model
.
Czy jest jakiś sposób uzyskania dostępu do modelu w tym momencie procesu renderowania? Czy muszę ustawić klasę później, na przykład w funkcji render
?
Nie, to nieprawda. Ta funkcja "attributes" jest sprawdzona w metodzie _ensureElement() iw tym momencie nie masz dostępu do this.model –