我正在使用Oauth來管理AngularJS應用程序中的會話用戶。我的Angular應用程序需要知道關於會話用戶的信息,因爲它用於我的$ resource對象(使REST調用像GET/user /:user/projects)。我希望這個用戶變量是全局的,並且同步,因此使用$ resource或$ http進行異步調用以獲取用戶向需要此會話用戶的代碼添加樣板(因爲它必須等待用戶信息返回從服務器)。在AngularJS中管理同步服務器端數據的最佳方法
現在,我使用這個骯髒的黑客能解決問題:在我的index.ejs文件(通知用戶呈現服務器端與EJS)
<script type="text/javascript">
var session_user = <%- user %>;
</script>
,然後我做
$rootScope.user = session_user
問題是,當我單元測試控制器,當然session_user沒有定義。
我在想,也許我可以創建一個服務,返回這個變量session_user
,所以我可以使用模擬測試。任何其他想法?這種問題的建議措施是什麼?