繁体   English   中英

AngularJS承诺和嵌套控制器

[英]AngularJS promises and nested controllers

我有以下困境:

如果我有两个像这样的嵌套控制器:

Controller1
   Controller2

在Controller1中,我有一个字段

someDataService.getMyUser().then(function(user){      
   $scope.user = user;
}

这是承诺的结果(对外部服务器的异步调用)。 到现在为止还挺好。 但是如何处理以下情况:

我需要在Controller2中使用

var userName = $scope.$parent.user.userName 

当控制器被解雇时正确。 如何设置第二个控制器,以等待第一个控制器中的promise解析,然后才评估该var userName分配? (否则我会得到$ scope。$ parent是不确定的)

您不能调用$ scope。$ parent.user.userName而不是调用某个函数(例如$ scope。$ parent.get_user()),该函数调用someDataServive.getMyUser()并返回承诺吗?

或者,将someDataService注入Controller2并直接调用getMyUser()函数不是更好吗?

具有这样的依赖关系并不是很好,但是如果您需要在Controller2中调用一些初始化代码,则可以在加载对象时使用$ broadcast直接从Controller1运行Controller2的初始化代码来执行此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM