2016-09-29 30 views
0

我有一個簡單的管理頁面,進行以下操作:在餘燼中,如何等待get的結果完成?

beforeModel: function() { 
    var permission = this.get('userService.currentUser.userPermission.isAdmin'); 
    if(!permission) { 
     console.log("no permission"); 
     return this.transitionTo('index'); 
    } 
    }, 

用戶和UserPermission是獨立的模型。 UserPermission被加載異步。

如果我導航到/ admin(權限對象已被緩存),但是如果我直接轉到/ admin,它不會,因爲userPermission對象尚未加載。

有沒有辦法說「獲得userPermission然後評估」?

+0

獲取userPermission返回Promise? – kumkanillam

回答

1

如果假設this.get('userService.currentUser')返回Promise,那麼你可以這樣做,因爲beforeModel將在調用模型鉤子之前解析異步操作。

beforeModel: function() { 
    return this.get('userService.currentUser').then((userPermission) => { 
     if (!userPermission.isAdmin) { 
      this.transitionTo('index'); 
     } 
    }); 
}