![](/img/trans.png)
[英]Providing Data From Spring MVC to AnjularJS in the initial view call
[英]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.