【发布时间】:2018-09-15 17:30:24
【问题描述】:
我是 AngularJS 网络开发的新手。
步骤 1. 在初始化期间,我通过 http 调用从服务器获取登录信息。比如说,用户名、用户 ID 和其他一些信息。
STEP 2. http调用成功后,我想填充loginObj对象,例如
$scope.loginObj = { UserID = '', UserName = '', SomeData: '' };
$scope.loginObj.UserID = 1000;
$scope.loginObj.UserName = 'John Doe';
$scope.loginObj.SomeData = 'Some other data';
步骤 3. 我想广播 $scope.loginObj 对象信息 $rootScope.broadcast 方法。
我见过的所有例子都使用了某种点击按钮。无按钮点击 解决方案。
STEP 4. 在子控制器中,我想接收广播 来自父控制器的信息。
How can I receive this information?
第 5 步。有时我还会在子控制器处获得一些额外信息。
如何从子控制器接收此信息到父控制器 控制器?
请给我一个解决方案或指导我一些可以获取示例的网站。
【问题讨论】:
-
你试过实现$broadcast、$on和$emit吗?如果是这样,请分享有关您如何实现它的代码。我们会从那里拿走它。或提供带有控制器结构的基本 plunkr 演示代码并更新您的问题。
-
子控制器只能从父控制器继承数据。为什么你觉得你需要为此使用 $scope/$rootScope 事件总线?
-
@georgeawg,您是正确的并且正在使用它。结构为 Home/Page2/Page3/Page4。如果您只是单击任何页面,我会毫无问题地获得 rootScope 值。我面临的问题是,一旦您刷新 page2,我就会失去价值。在我看来,这是一种计时器问题。如果我放置警报 Home 控制器,那么我可以看到 Page2 控制器中的值。我在这里遗漏了一些东西。请帮帮我。我在主页中使用 ng-view。因此,任何刷新都必须通过主页才能进入 Page2/Page3。
-
@ShashankVivek,您能否看看我对 georgeawg 的回复并指导我如何解决这个问题?
-
@Alomoni:当然,您能否在plnkr.co/edit 上提供演示代码。使用
refresh the page2, I lose the value,您的意思是重新加载站点吗,如果是这种情况,那么它将丢失,因为您的app已完全重新加载。如果您希望在重新加载时发出某些事件,您可以在ng-init的HomeController中输出该代码。如需快速解决方案,请创建一个有效的 plunkr 演示,我们可以在其中复制并查看您在实施什么
标签: javascript angularjs events