2016-06-30 4 views
-1

Ich baue eine Ember-Anwendung. Auf meiner Homepage-Seite ist meine Körperhintergrundfarbe blau, aber wenn sich ein Benutzer anmeldet, möchte ich, dass die Körperhintergrundfarbe in weiß geändert wird. Wie kann ich eine dynamische Körperhintergrundfarbe festlegen, die sich ändert, nachdem ein Benutzer authentifiziert wurde?Ändern der Körperhintergrundfarbe basierend auf Authentifizierung

Hier ist mein Körper css:

body { 
    background-color: $process-blue; 
    font-family: 'Lato', sans-serif; 
    @include container(80%); 
} 

Hier die berechnete Eigenschaft schrieb ich:

myUser: null, 
    isAuthorized: Ember.computed('myUser', function() { 
    return this.get('firebaseApp').auth().currentUser !== null; 
    }), 

Antwort

0

würde ich vorschlagen, die folgendes zu tun:

1) in Ihrer Anwendung. hbs erstellt einen Container für die gesamte Anwendung:

<div class={{if isAuthorized 'auth' 'no-auth'}}>{{outlet}}</div> 

2) Erstellen Sie im Anwendungscontroller eine berechnete Eigenschaft isAuthorized, die von der Autorisierung abhängig ist.

3) In CSS-Änderung Hintergrund für auth und no-auth Klassen

+0

Könnten Sie ein wenig weiter erklären, was die berechnete Eigenschaft für 'isAuthorized' aussehen würde? Ich habe die berechnete Eigenschaft, die ich geschrieben habe, zu meiner Antwort hinzugefügt, aber es scheint nicht zu funktionieren. –

+0

@NickEmmons es hängt von Ihrer Authentifizierungslösung ab, sollten Sie in docs nach Bibliothek suchen, die Sie verwenden. [ember-simple-auth] (https://github.com/simplabs/ember-simple-auth#basic-usage) bietet beispielsweise einen Sitzungsdienst für solche Zwecke. –

+0

@NickEmmons Was verwenden Sie für die Authentifizierung? Wie checken Sie eine Vorlage ein, wenn der Benutzer authentifiziert ist? –