簡體   English   中英

根據初始登錄視圖中的數據在后台加載視圖

[英]Load view in background based on data from initial login view

這不是我的實際用例,但我試圖理解如何基於另一個視圖使用appgyver超音速框架加載的視圖的概念。

我有3頁,分別是Login.html,MainPage.html和Load.html。 他們每個人都有自己的控制器。 當應用程序打開時,它首先進入登錄頁面。 登錄頁面將用戶名和密碼發送到我的服務器,然后服務器返回成功與否。 成功后,該應用程序將轉到主頁。 我想讓load.html了解已經發生的登錄並開始使用用戶適當的內容加載視圖。 這樣,當用戶從主頁轉到加載頁面時,所有信息都已加載。 我試圖理解如何用超音速完成此任務的概念。

您可以在控制器之間使用發布/訂閱方法。

查看此文檔以獲取一些好的示例。

基本上,您希望在用戶登錄時發布包含一些數據的消息。登錄后的控制器將能夠收聽或訂閱該消息。 收到消息后,它將能夠運行您在回調中告訴您的任何代碼。

一個控制器將發布:

// gather some user data with successful login like var id = result.user.id
supersonic.data.channel('loginSuccess').publish({ userid: id });

另一個控制器將監聽:

supersonic.data.channel('loginSuccess').subscribe( function(data) {
    $scope.id = data.userid;
    // load some data based on user id
});

您也可以預加載視圖。 這可能有助於加快速度。 如果不這樣做,則在兩次視圖推送之間可能會看到一個微調框。 在config文件夾的structure.coffee中:

preloads: [
  {
    id: "viewIdYouSet"
    location: "nameOfModule#view"
  }
]

登錄完成后,您可以找到預加載的視圖並將其推入堆棧:

supersonic.ui.views.find("viewIdYouSet").then( function(startedView) {
    supersonic.ui.layers.push(startedView);
});

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM