2016-04-13 10 views
5

Sto eseguendo il bootstrap di Aurelia da un'applicazione legacy basata su Web Form. Le mie informazioni relative all'autenticazione sono mantenute nell'applicazione web-forms nella classe Custom Base Page.Come passare i dati da Web Form di ASP.NET a Aurelia Global Scope

Come passare & mantenere queste informazioni di autenticazione sull'ambito globale di Aurelia? In modo che possa usarlo mentre costruisco i menu usando i percorsi per mostrare/nascondere determinate voci di menu in base all'utente/ruolo?

risposta

5

Si potrebbe mettere la logica tua pagina personalizzata di base per aggiungere un tag <script> alla testa del documento che rende tutte le informazioni disponibili a JavaScript applicazioni:

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

Poi, nel tuo Aurelia applicazione è possibile accedere a queste informazioni se necessario:

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

Si potrebbe anche registrare l'oggetto nel contenitore, consentendoti di dichiararlo come dipendenza. Ciò renderà il tuo codice più portatile e verificabile.

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

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

Grazie, ha funzionato senza problemi. –

+1

Questo mi ha aiutato molto. E come ha detto Ajay, senza soluzione di continuità e facile. –

+0

Grazie mille @Jeremy. Esso funziona magicamente :) – Axel

Problemi correlati