2016-04-13 56 views
5

我從基於Web表單的傳統應用程序引導Aurelia。我的身份驗證相關信息在Custom Base Page類的Web表單應用程序中進行維護。如何將數據從ASP.NET WebForms傳遞到Aurelia Global範圍

我該如何通過&將此認證信息保存到Aurelia的全球範圍?這樣一來,我就可以在使用路由創建菜單的同時使用它來顯示/隱藏基於用戶/角色的某些菜單項?

回答

5

你可以把邏輯定製基頁的<script>添加標記,使所有可用的JavaScript應用程序的信息的文件的頭部:

<head> 
    ... 
    <script> 
    window.appInfo = { 
     user: 'foo', 
     bar: 'baz' 
    }; 
    </script> 
</head> 
<body aurelia-app="main"> 
    ... 

然後在你的奧裏利亞應用程序,你可以訪問此信息根據需要:

export class App { 
    constructor() { 
    let info = window.appInfo; 
    // do something with the app info... 
    } 
    ... 
} 

您甚至可以在容器中註冊該對象,使您可以將其聲明爲依賴項。這將使你的代碼更加便攜和可測試。

在main.js:aurelia.container.registerInstance('app-info', window.appInfo);

@inject('app-info') 
export class App { 
    constructor(info) { 
    // do something with the app info...   
    } 
    ... 
} 
+1

謝謝,它無縫地工作。 –

+1

這幫了我很大的忙。正如Ajay所說的那樣,無縫且簡單。 –

+0

非常感謝你@Jeremy。它像一個魅力:) – Axel