2016-05-03 17 views
0

我有$broadcast事件其父控制器工作,但我沒有看到對象進來的孩子控制器我不知道我實施錯誤。

如何使用angularJs事件實現此任務?

parentCtrl.js

$scope.$broadcast('assessmentData',$scope.RiskAssessDTO); 

childCtrl.js

if ($stateParams.assessmentId) { 
    $scope.$on('assessmentData', function(s, assessmentData) { 
     var assessmentData = assessmentData; 
     console.log('assessmentData', assessmentData); 
    }); 
} 
+0

是兒童裝,是如果條件爲真,在嘗試播出之前? –

+0

是的孩子被加載,如果條件滿足 – hussain

回答

2

如果你想使用$廣播你應該使用$ rootScope。

$scope.startScanner = function() { 

    $rootScope.$broadcast('scanner-started'); 
} 

然後接收,使用控制器的$範圍:

$scope.$on('scanner-started', function(event, args) { 

    // do what you want to do 
}); 

https://docs.angularjs.org/api/ng/type/ $ rootScope.Scope#$上

問候,

+1

這不一定是正確的。如果與root作用域一起發送以處理在該級別註冊的處理程序,則只需使用'$ rootScope'。在這種情況下,來自'$ rootScope'的廣播可能實際上掩蓋了***範圍問題,因爲您的範圍不在您認爲的範圍。 –

相關問題