您的位置是:网站首页>Javascript编程Javascript编程

浅谈angular控制器通信的4种方式

少儿编程网2021-06-29 16:12:01Javascript编程 人已围观 来源:少儿编程 -用户投稿

简介本篇文章给大家介绍一下angular控制器通信的4种方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。【相关推荐:《angular教程》】首先概括一下angular控制器通信的4种方式:作用域继承。通过$scope广播事件。事件发射器模块。服务。1、作用域的继承子作用域可以访问声

版权所有:https://wWw.pxcodeS.com 本篇文章给大家介绍一下angular控制器通信的4种方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。tCH少儿编程网-https://www.pxcodes.com

tCH少儿编程网-https://www.pxcodes.com

【相关推荐:《angular教程》】tCH少儿编程网-https://www.pxcodes.com

首先概括一下angular控制器通信的4种方式:tCH少儿编程网-https://www.pxcodes.com

  • 作用域继承。tCH少儿编程网-https://www.pxcodes.com

  • 通过$scope广播事件。tCH少儿编程网-https://www.pxcodes.com

  • 事件发射器模块。tCH少儿编程网-https://www.pxcodes.com

  • 服务。tCH少儿编程网-https://www.pxcodes.com

1、作用域的继承tCH少儿编程网-https://www.pxcodes.com

子作用域可以访问声明在它们的祖先作用域中的变量和函数。tCH少儿编程网-https://www.pxcodes.com

<div ng-controller="Controller1">
	<div ng-controller="Controller2">
		this prints '42':{{answer}}
	</div>
</div>
m.controller('Controller1', function ($scope) {
	$scope.answer = 42;
});
m.controller('Controller2', function ($scope) {
	console.log($scope.answer);
});

2、通过$scope广播事件tCH少儿编程网-https://www.pxcodes.com

$emit调用可以向作用域上方冒泡,$broadcast将向子孙作用域传播,$on可以注册监听器。tCH少儿编程网-https://www.pxcodes.com

<div ng-controller="Controller1">
	<div ng-controller="Controller2">
	
	</div>
</div>
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-emittertCH少儿编程网-https://www.pxcodes.com

event-emitter模块工作方式类似于作用域发射器,它们有3个关键的区别:tCH少儿编程网-https://www.pxcodes.com

  • event-emitter是独立于作用域的,所以在无法访问作用域的服务中使用它是非常理想的。tCH少儿编程网-https://www.pxcodes.com

  • 将使用的函数被命名为.on(),.emit()。tCH少儿编程网-https://www.pxcodes.com

  • 没有对应的$broadcast()函数。tCH少儿编程网-https://www.pxcodes.com

<script type="text/javascript" src="angular.js"></script>
<script type="text/javascript" src="event-emitter.js"></script>
<script type="text/javascript">
	var app = angular.module('app', []);
 
	app.factory('userService', function ($timeout, $window) {
		var emitter = $window.emitter();
		var user = {};
 
		//模拟http错误
		$timeout(function () {
			user.emit('error', 'Could not connect to server');
		}, 1000);
 
		return user;
	});
 
	app.factory('profileService', function (userService) {
		var ret = {
			user: userService,
		};
 
		userService.on('error', function () {
			console.log('get error');
		});
 
		return ret;
	});
</script>

4、**常用的通信是服务tCH少儿编程网-https://www.pxcodes.com

因为服务是单例,所以在任何组件内改变服务的值都将影响其他组件,用法很简单,只要把服务列为依赖就可以了,如以上代码所示。tCH少儿编程网-https://www.pxcodes.com

更多编程相关知识,请访问:编程教学!!

以上就是浅谈angular控制器通信的4种方式的详细内容,更多请关注少儿编程网其它相关文章!tCH少儿编程网-https://www.pxcodes.com

来源:php中文网tCH少儿编程网-https://www.pxcodes.com

版权所有:https://wWw.pxcodeS.com

相关文章:

支持一下 ( )

浅谈angular控制器通信的4种方式

      匿名评论
    • 评论
    人参与,条评论
    浅谈angular控制器通信的4种方式

微信公众号

免费视频教程

先知道