0

我想知道获取当前登录用户的用户模型记录的最佳方法是什么。我将 torii 与相应的 firebase 适配器结合使用。

应用程序/torri 适配器/application.js

import Ember from 'ember';
import ToriiFirebaseAdapter from 'emberfire/torii-adapters/firebase';

export default ToriiFirebaseAdapter.extend({
  firebase: Ember.inject.service()
});

例如:我有一个客户端模型,此时我有一个非常丑陋的解决方案来查询与当前登录用户关联的所有客户端记录:

应用程序/路由/clients.js

import Ember from 'ember';

export default Ember.Route.extend({
  model: function() {
    var _this = this;
    return this.store.query('user', {
      orderBy: 'email',
      equalTo: this.get('session.currentUser.email')
    }).then(function(user) {
      var myUser = user.get('firstObject');
      return _this.store.query('client', {
        orderBy: 'user',
        equalTo: myUser.id
      }).then(function(client) {
        return client;
      });
    });
  }
});

肯定有更好的方法来做到这一点?

4

1 回答 1

0

您可以currentUser在应用程序初始化时将其注入到您的所有控制器、路由和组件中,这样您就可以this.get('currentUser')在需要的任何地方简单地引用当前用户。请参阅此处显示如何完成此操作的示例的部分:https ://guides.emberjs.com/v2.5.0/applications/dependency-injection/

于 2016-04-21T04:09:01.183 回答