簡體   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