根据初始登录视图中的数据加载后台视图

时间:2015-06-17 22:44:28

标签: angularjs steroids appgyver supersonic

这不是我的实际用例,但我试图理解如何基于另一个视图使用appgyver超音速框架的信息加载视图的概念。

我有3个页面,Login.html,MainPage.html和Load.html。他们每个人都有自己的控制器。当应用程序打开时,它首先进入登录页面。登录页面将用户名和密码发送到我的服务器,然后返回成功与否。成功后,应用程序将转到主页面。我想让load.html了解登录已经发生并开始使用用户适当的内容加载视图。当用户从主页面进入加载页面时,所有信息都已加载。我试图理解如何用超音速实现这一目标的概念。

1 个答案:

答案 0 :(得分:1)

您可以在控制器之间使用发布/订阅方法。

查看this doc以获取一些好例子。

基本上,您希望在用户登录时发布包含某些数据的消息。登录后的控制器将能够侦听或订阅该消息。当它收到消息时,它将能够运行你在回调中告诉它的任何代码。

一个控制器将发布:

test3.php

另一个控制器会听:

// 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 }); 中:

structure.coffee

登录完成后,您可以找到预加载的视图并将其推送到堆栈:

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

希望这有帮助。