2017-08-08 5 views
0

Bitte entschuldigen Sie, wenn das eine dumme Frage ist. Ich versuche, einen Drop-Down zu verstecken, basierend auf den Attribute Wert in den Backbone-Modelle so etwas wie dieseBackbone JS Modelle: Versteckt ein Dropdown

var MyModel = Backbone.Model.extend({ 
    initialize: function(options) { 
    // I have access to this.attributes here 
    if(options.name == 'Test') { 
    // hide the subject dropdown 

    } 
} 
}); 

Ich versuche, den Drop-Down zu verstecken, aber die Suche nach Ideen, um herauszufinden, was der richtige Weg ist, dies zu tun ? Da der Drop-Down in einer Backbone Form ist frage ich mich, wenn ich nur die Art einstellen zu Verborgene in den Modellen

Dank

Antwort

2

sollten Sie nicht dies in einem Modell tun. Das Modell dient zum Speichern von Daten, das Ausblenden eines Dropdown-Menüs ist eine Präsentationslogik. Es sollte innerhalb der Ansicht erfolgen.

Also im Grunde Ihre Ansicht hat so etwas wie

if(this.model.get('name') === 'pink'){ 
    this.$('#pinks-dropdown').hide(); 
} 

Was Sie im Modell hat eine Methode, die einige Operationen auf seine Daten hat, so dass Sie eine Methode, wie diese in Betrieb haben können:

isNameMatchingSomething: function(){ 
    // some big logic 
    return this.get("name") === 'pink'; 
} 

Und Sie können dies nutzen, für Dropdown in Sicht versteckt wie:

if(this.model.isNameMatchingSomething()){ 
    this.$('#pinks-dropdown').hide(); 
} 
Verwandte Themen