国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Angularjs實現控制器之間通信方式實例總結

2024-05-06 15:20:23
字體:
來源:轉載
供稿:網友

本文實例講述了Angularjs實現控制器之間通信方式。分享給大家供大家參考,具體如下:

利用angularjs開發項目中,控制器之間的通信,比如參數的傳遞,數據的傳遞,都是比較常見的。控制器之間的通信,顯得尤為重要。常見的方式有如下兩種:一、angular服務的方式;二、基于事件廣播的方式;另外,還有基于作用域繼承的方式。下面先說一下前兩種方式:

一、基于angular服務的方式:

在angular中服務是一個單例,所以在服務中生成一個對象,該對象就可以利用依賴注入的方式在所有的控制器中共享。參照以下例子,在一個控制器修改了服務對象的值,在另一個控制器中獲取到修改后的值:

var app = angular.module('myApp', []);app.factory('Myservice', function(){ return {};});//定義服務app.controller('Ctrltest1', function($scope, 'Myservice') { $scope.change = function() {  Myservice.name = $scope.test; //在第一個控制器中為服務對象賦值 };});app.controller('Ctrltst2', function($scope, 'Myservice') { $scope.add = function() {  $scope.name = Myservice.name; //將第一個控制器中為服務對象賦的值傳給第二個控制器 };});
<div ng-controller='Ctrltest1'>  <input type="text" ng-model="test" />  <div ng-click="change()">click me</div></div><div ng-controller='Ctrltest2'> <div ng-click="add()">my name {{name}}</div></div>

二、基于事件廣播的方式

基于事件廣播,需要用到$emit()$broadcaset()$emit()這三個方法。

1. 向父作用域層次結構發出自定義事件:使用$emit()方法,scope.$emit(name,[args,...])

注:name是事件名,args 是0個或多個參數。

應用場景:用于子頁面控制器向父頁面的控制器傳遞參數。

2. 向子作用域層次結構廣播自定義事件:

應用場景:用于父頁面控制器向子頁面的控制器傳遞參數或者同級控制器之間傳遞參數。

使用$broadcaset()方法,$scope.$broadcaset(name,[args,...])

注:name是事件名,args 是0個或多個參數.

3. 使用偵聽器處理自定義事件

為了處理發出或廣播的事件,可以使用$on()方法。$on()方法將使用下面的語法:

$scope.$on(name,listener)

注:name 是將要偵聽的事件的名字,listener參數是一個函數,它將接受事件作為第一個參數,接受$emit()或者$broadcaset()方法傳遞的其他所有參數作為隨后的參數。$on()方法主要用于監聽$emit()$broadcaset()方法中事件的變化,例如這兩個方法中如果有變量發生改變,$on()方法將會獲取到該變量的改變。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 陵川县| 乌恰县| 宣恩县| 桐柏县| 济南市| 平武县| 乐昌市| 藁城市| 苏尼特右旗| 陵水| 武冈市| 平山县| 惠州市| 泸州市| 巴青县| 博爱县| 蒙城县| 繁峙县| 康乐县| 苍山县| 塔河县| 察雅县| 松原市| 潼南县| 津南区| 鄂托克前旗| 邻水| 德令哈市| 金山区| 泰顺县| 抚州市| 京山县| 隆化县| 汤原县| 遂平县| 彰化市| 安徽省| 柳州市| 中江县| 双鸭山市| 平泉县|