Jak wstrzyknąć bieżącego użytkownika do wszystkich innych modeli użytkowników
w mojej aplikacji mam kilku użytkowników, którzy mogą być przyjaciółmi. Teraz próbuję zbudować funkcję, która pobiera „friendShipStatus” z bieżącego zalogowanego użytkownika na innego użytkownika. To jest kolejne pytanie z tego:Przecięcie obietnic i zależne właściwości obliczone
/**
* Gives the relation between two User
* 4: has requested your friendship
* 3: Yourself
* 2: Friends
* 1: FriendShip Request
*/
friendShipStatus: function() {
return this.container.lookup('user:current').then(function(user){
if(this.get('friends').contains(user)){
return 2;
} else if(this.get('friendsWithMe').contains(user)){
return 4;
} else if(this.get('myFriends').contains(user)){
return 1;
} else if (this.get('id') === user.get('id')){
return 3;
} else {
return 0;
}
});
}.property('friends.@each')
Obietnica jest już próbą, ale nie działa. Wolałbym raczej wstrzyknąć currentUser i obserwować właściwość, że jak tylko bieżący użytkownik zostanie rozwiązany, zmiany właściwości. Moja próba:
Ember.Application.initializer({
name: "currentUser",
initialize: function(container, application) {
var store = container.lookup('store:main');
container.register('user:current', store.find('user', 1), { instantiate: false, singleton: true });
}
});
Ember.Application.initializer({
name: "injectCurrentUser",
after: 'currentUser',
initialize: function(container) {
// container.injection('controller:application', 'currentUser', 'user:current');
container.typeInjection('route', 'currentUser', 'user:current');
container.typeInjection('controller', 'currentUser', 'user:current');
container.typeInjection('model', 'currentUser', 'user:current');
container.injection('user:model', 'currentUser', 'user:current');
}
});
Próbowałem już tego typu zastrzyków i zwykłego zastrzyku. Ale w moim modelu użytkownika moja własność currentUser jest zawsze niezdefiniowana.
Jak mogę wprowadzić aktualnego użytkownika do mojego modelu użytkownika?