重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

angular控制器通信的4种方式有哪些

这篇文章主要介绍了angular控制器通信的4种方式有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

创新互联专注于禄劝网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供禄劝营销型网站建设,禄劝网站制作、禄劝网页设计、禄劝网站官网定制、小程序设计服务,打造禄劝网络公司原创品牌,更为您提供禄劝网站排名全网营销落地服务。

首先概括一下angular控制器通信的4种方式:

  • 作用域继承。

  • 通过$scope广播事件。

  • 事件发射器模块。

  • 服务。

1、作用域的继承

子作用域可以访问声明在它们的祖先作用域中的变量和函数。


	
		this prints '42':{{answer}}
	
m.controller('Controller1', function ($scope) { $scope.answer = 42; }); m.controller('Controller2', function ($scope) { console.log($scope.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个关键的区别:




	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;
	});

4、最常用的通信是服务

因为服务是单例,所以在任何组件内改变服务的值都将影响其他组件,用法很简单,只要把服务列为依赖就可以了,如以上代码所示。

感谢你能够认真阅读完这篇文章,希望小编分享的“angular控制器通信的4种方式有哪些”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


分享名称:angular控制器通信的4种方式有哪些
网页URL:http://cqcxhl.cn/article/gccees.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP