我知道$ emit和$ broadcast之间的区别但是我想知道将两者结合起来是一个好习惯,而层次结构在未来可能会更复杂吗?
考虑以下情况:
在我的下面示例中,我将“唤醒”字符串从Child1传递给Child2(而Parent1是传递此数据的字符串)。 技术上发生的一步一步:
代码:
function ControllerParent1($scope) {
$scope.$on('myEmit', function(event, args) {
$scope.$broadcast('myBroadcast', args.message); //Step2
};
}
function ControllerChild1($scope) {
$scope.$on('myEmit', function(event, args) {
$scope.$emit('send', {message: 'wake up'}); //Step1
});
}
function ControllerChild2($scope) {
$scope.$on('myBroadcast', function(event, args) {
$scope.message = args.message; //Step3
});
}
现在这对我来说非常技术性,我对这种做法感到疑惑,这是正确的角度工作方式吗?将来处理可能会更复杂。
答案 0 :(得分:0)
如果您愿意为将来的应用程序提供证明,可以使用pub / sub模式。通过这种方式,您的控制器可以发布他们想要的事件并将其描述为他们感兴趣的任何事件,而无需($scope/$rootScope).($emit/$broadcast)
上的强耦合。
有关本文的更多信息:http://eburley.github.io/2013/01/31/angularjs-watch-pub-sub-best-practices.html