0

ここに私のイニシャライザがあります:

...
Ember.SimpleAuth.Session.reopen({
    currentUser: function() {
        var userId = this.get('user_id');

        if (!Ember.isEmpty(userId)) {
            return container.lookup('store:main').find('user', userId);
        }
    }.property('user_id')
});
...

コントローラ:

isAdmin: function() {
    var session = this.get('session.currentUser'),
        role = session.get('role'); // 'role' is undefined

    return role.get('name') == "Administrator";
}.property()

しかし、テンプレートから試したとき:

{{session.currentUser.role.name}}

それは完全に機能します。

currentUserすべてのコントローラーまたはルートにアクセスするにはどうすればよいですか?

4

3 に答える 3

1

session.currentUser約束だからだと思います。コントローラーでこれを試してください:

isAdmin: function() {
    return this.get('session.currentUser').then(function(r) {
      return r.get('role.name') == 'Administrator';
    });
}.property()
于 2014-06-21T06:12:22.167 に答える
0

SimpleAuth セッションに isAdmin を追加してみませんか:

isAdmin: function() {
  return @get('current_user.role.name') == 'Administrator';
}.property('current_user')

それからあなたはできるはずです

{{session.isAdmin}}

あなたのテンプレートで。

于 2014-06-12T12:07:32.233 に答える