ich Decorator
in diesen Fällen zu verwenden, verwendet zu umschließen. Ich aussetzen hier ein Beispiel dafür, wie es aussieht:
// code simplified and not tested
var MyModelDecorator = Backbone.Model.extend({
initialize: function(opts){
this.model = opts.model;
},
toJSON: function(){
var json =
_.extend(
this.model.toJSON(),
{
checked: this.checked(),
css_classes: this.cssClasses()
}
);
return json;
},
checked: function(){
result = "";
if(this.model.get("checked")) result += "checked=\"true\"";
return result;
},
cssClasses: function(){
result = "";
if(this.model.get("checked")) result += " checked";
if(this.model.get("key") == "value") result += " important";
return result;
}
});
ich ein zusätzliches css_classes
Dekorateur Attribut hinzugefügt haben so können Sie diesen Ansatz sehen kann eine gemeinsame Lösung für mehrere Situationen.
Ihre View.render
kann wie folgt aussehen:
// code simplified and not tested
var myView = Backbone.View.extend({
template: _.template("<input id=\"isRegisteredCheckbox\" <%= checked %> class=\"<%= css_classes %>\" />"),
render: function(){
var decorator = new MyModelDecorator({ model: this.model });
this.$el.html(this.template(decorator.toJSON()));
}
});
value = "<% = item.id%>" /> –