2014-03-07 92 views
1

檢索在飛鏢聚合物中的登錄表單中輸入的用戶名的最佳方式是在下一頁將其重定向到的頁面中讀取?將登錄表單中的值傳遞到儀表板

登錄組分是如下 -

@CustomTag('alfresco-login-form') 
class LoginFormComponent extends FormElement with Polymer, Observable { 
    LoginFormComponent.created() : super.created(); 

    @observable String username = ""; 
    @observable String password = ""; 

    @observable Map loginData = toObservable({ 
    'username' : '', 
    'password' : '' 
    }); 


    @observable String serverResponse = ''; 
    HttpRequest request; 

    void submitForm(Event e, var detail, Node target) { 
    e.preventDefault(); // Don't do the default submit. 

    request = new HttpRequest(); 

    request.onReadyStateChange.listen(onData); 

    // POST the data to the server. 
    var url = 'http://127.0.0.1/alfresco/service/api/login'; 

    request.open("POST", url); 
    request.send(_loginDataAsJsonData()); 
    } 

    void onData(_) { 
    if (request.readyState == HttpRequest.DONE && 
     request.status == 200) { 
     // Data saved OK. 
     serverResponse = 'Server Sez: ' + request.responseText; 

     Map parsedMap = JSON.decode(request.responseText); 

     var currentTicket = new Ticket(parsedMap["data"]["ticket"]); 

     //keeps the back history button active 
     //window.location.assign('dashboard.html'); 

     //doesn't keep the back history button active 
     //doesn't put the originating page in the session history 
     window.location.replace('dashboard.html'); 
    } else if (request.readyState == HttpRequest.DONE && 
     request.status == 0) { 
     // Status is 0...most likely the server isn't running. 
     serverResponse = 'No server'; 
    } 
    } 
    String _loginDataAsJsonData(){ 
    return JSON.encode(loginData); 
    } 
} 

我需要訪問該loginData [ '用戶名'] & parsedMap [ 「數據」] [ 「票」],在可用頁面dashboard.html。

+0

我想你應該多解釋一下你想做的事情。你爲什麼重定向。重定向之前執行的是什麼。根據您提供的信息,我建議在表單提交時將數據發送到服務器。用會話標識(例如cookie)識別用戶,並從新頁面上的服務器獲取數據。 –

+0

@GünterZöchbauer我已根據您的要求編輯了該問題。讓我知道你是否需要我的更多信息。 –

回答

0

不是一個真正的答案,但長期的評論:

您的代碼展示瞭如何發送憑據到服務器。所以我以前的評論仍然適合。你不能只將變量傳遞給新頁面。加載頁面時,這就像應用程序重啓。您可以將URL重定向到的值作爲cookie,如果兩個頁面都從同一個域加載,或者您可以從先前存儲它們的服務器重新加載它們。要知道新頁面是由同一用戶請求的,你必須使用一些會話處理(如前面提到的會話cookie)。這與Dart或Polymer沒有任何關係,這更多關於網絡的工作原理。

相關問題