真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

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

這篇文章主要介紹了angular控制器通信的4種方式有哪些,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

創(chuàng)新互聯(lián)專注于祿勸網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供祿勸營銷型網(wǎng)站建設(shè),祿勸網(wǎng)站制作、祿勸網(wǎng)頁設(shè)計、祿勸網(wǎng)站官網(wǎng)定制、小程序設(shè)計服務(wù),打造祿勸網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供祿勸網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。

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

  • 作用域繼承。

  • 通過$scope廣播事件。

  • 事件發(fā)射器模塊。

  • 服務(wù)。

1、作用域的繼承

子作用域可以訪問聲明在它們的祖先作用域中的變量和函數(shù)。


	
		this prints '42':{{answer}}
	
m.controller('Controller1', function ($scope) { $scope.answer = 42; }); m.controller('Controller2', function ($scope) { console.log($scope.answer); });

2、通過$scope廣播事件

$emit調(diào)用可以向作用域上方冒泡,$broadcast將向子孫作用域傳播,$on可以注冊監(jiān)聽器。


	
	
	
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、事件發(fā)射器模塊event-emitter

event-emitter模塊工作方式類似于作用域發(fā)射器,它們有3個關(guān)鍵的區(qū)別:




	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、最常用的通信是服務(wù)

因為服務(wù)是單例,所以在任何組件內(nèi)改變服務(wù)的值都將影響其他組件,用法很簡單,只要把服務(wù)列為依賴就可以了,如以上代碼所示。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“angular控制器通信的4種方式有哪些”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!


網(wǎng)頁標(biāo)題:angular控制器通信的4種方式有哪些
網(wǎng)頁URL:http://weahome.cn/article/gccees.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部