本篇文章给大家介绍一下angular控制器通信的4种方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
【相关推荐:《angular教程》】
首先概括一下angular控制器通信的4种方式:
作用域继承。
通过$scope广播事件。
事件发射器模块。
服务。
1、作用域的继承
子作用域可以访问声明在它们的祖先作用域中的变量和函数。
m.controller('Controller1', function ($scope) { $scope.answer = 42; }); m.controller('Controller2', function ($scope) { console.log($scope.answer); });this prints '42':{{answer}}
2、通过$scope广播事件
$emit调用可以向作用域上方冒泡,$broadcast将向子孙作用域传播,$on可以注册监听器。
m.controller('Controller1', function ($scope) { $scope.$on('ping', function (){ console.log('pong'); }); $scope.$broadcast('broadcast'); }); m.controller('Controller2', function ($scope) { $scope.$emit('ping'); $scope.$on('broadcast', function (){ console.log('broadcast'); }); });
3、事件发射器模块event-emitter
event-emitter模块工作方式类似于作用域发射器,它们有3个关键的区别:
event-emitter是独立于作用域的,所以在无法访问作用域的服务中使用它是非常理想的。
将使用的函数被命名为.on(),.emit()。
没有对应的$broadcast()函数。
4、最常用的通信是服务
因为服务是单例,所以在任何组件内改变服务的值都将影响其他组件,用法很简单,只要把服务列为依赖就可以了,如以上代码所示。
更多编程相关知识,请访问:编程教学!!
以上是浅谈angular控制器通信的4种方式的详细内容。更多信息请关注PHP中文网其他相关文章!