2016-03-29 9 views
2

Verwendung von Ember-Simple-Auth Ich richte eine Sitzung und setzen Sie den aktuellen Benutzerschlüssel gleich dem Benutzerobjekt vom Server zurückgegeben (bearbeiten: Inhalt des gesamten session.js-Datei):Ember.js - Zugriff auf Daten in Ember-Sitzung von Route

//app/services/session.js 

import Ember from 'ember'; 
import ESASession from "ember-simple-auth/services/session"; 

export default ESASession.extend({ 

    store: Ember.inject.service(), 
    session: Ember.inject.service(), 


    setCurrentUser: function() { 
    if (this.get('isAuthenticated')) { 
     const accountId = this.get('session.content.authenticated.user_id'); 
     console.log(accountId); 
     this.get('store').findRecord('user', accountId).then(user => { 
      this.set('currentUser', user); 
     }); 
    } 
    }.observes('isAuthenticated') 
}); 

Problem ist, wenn ich versuche, die 'current' Schlüssel aus einer Route für eine Daten Beziehung zuzugreifen:

user: Ember.computed(function(){ 
    console.log(this.get('session')); 
    //return `${this.get('session.currentUser')}`; 
    }), 

in der Konsole I (zusätzlich sehen ein paar andere Sachen):

currentUser: Class 

aber wenn ich versuche, 'session.currentUser' protokollieren sehe ich undefined.

Was kann ich tun, um von dieser Route aus auf die Benutzer-ID zuzugreifen? Ich habe viel Ärger damit! Vielen Dank im Voraus: D

+0

Haben Sie den Sitzungsdienst in der Klasse der 'setCurrentUser' Beobachter definiert injizieren? – marcoow

+0

@marcoow Vielen Dank für Ihren Kommentar, ich hatte keine Sitzung injiziert! Aber jetzt, wo ich das Problem habe, bleibt es bestehen. Ich kann sogar etwas wie 'session._super' protokollieren und sehe die richtigen Ergebnisse, aber nicht 'session.currentUser', obwohl dieser Schlüssel in der Konsole sichtbar ist, wenn ich die Ausgabe von console.log (this.get ('session') Ich werde den obigen Code mit dem gesamten Inhalt meiner session.js-Datei aktualisieren, nur um sicherzustellen, dass ich keine dummen Fehler mache. Nochmals vielen Dank. –

Antwort

3

Versuchen

this.get('session.data.currentUser') 
+0

Ja, vielen Dank.Ich war endlich in der Lage auf die ID bei Sitzung zuzugreifen .data.authenticated.user_id –