2014-10-23 9 views
5

Ich verwende Backbone in einem mobilen Projekt. Nehmen wir an, ich habe eine Beispielklasse wie diese.Angeben aller Eigenschaften in Backbone.Model

var Person = Backbone.extend({ 

}); 

Die Person Klasse die folgenden Eigenschaften firstName, lastName, age und gender. Ich möchte alle diese Eigenschaften in der Klasse angeben. Andere Entwickler wissen also, welche Eigenschaften sie für die Instanz festlegen müssen. Nachdem ich die Dokumentation durchgegangen bin, sehe ich eine Eigenschaft namens defaults, die ich benutzen könnte.

var Person = Backbone.extend({ 
    defaults: { 
     firstName: '', 
     lastName: '', 
     age: null, 
     gender: null 
    } 
}); 

Aber ich sehe den Zweck der defaults Eigenschaft ist anders, richtig? Leute nicht wissen zu lassen, welche Eigenschaften die Klasse enthält. Gibt es einen besseren Weg, dies zu erreichen?

Antwort

1

In unserem Projekt verwenden wir defaults für diesen Zweck. Es löst das Problem recht gut und kann auch als Dokumentationspunkt dienen. Es gibt keine andere Backbone-Art, dies zu tun, von der ich weiß. Sie können jedoch immer noch die altmodischen Kommentare verwenden :)

1

Sie könnten Getterfunktionen schreiben, sodass die Attribute des Modells direkt als öffentliche API des Modells verfügbar sind.

Auf diese Weise jeder Entwickler das Modell-Objekt in der Lage, es ist öffentlich Eigenschaften anzuzeigen (vorausgesetzt, sie eine anständige IDE verwendet), ohne auch nur die Datei zur Bearbeitung öffnen (warum das tun?), Z.B .:

var Person = Backbone.extend({ 
    defaults: { 
     firstName: '', 
     // ... 
    }, 
    getFirstName: function() { 
     return this.attributes.firstName; 
    } 
    // ... 
}); 
Verwandte Themen