淺談angular控制器通訊的4種方式
本篇文章跟大家介紹一下angular控制器通訊的4種方式。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
【相關推薦:《angular教學》】
先概括angular控制器通訊的4種方式:
作用域繼承。
透過$scope廣播事件。
事件發射器模組。
服務。
1、作用域的繼承
子作用域可以存取宣告在它們的祖先作用域中的變數和函數。
<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廣播事件
$emit呼叫可以向作用域上方冒泡,$broadcast將向子孫作用域傳播,$on可以註冊監聽器。
<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-emitter
event-emitter模組運作方式類似於作用域發射器,它們有3個關鍵的差異:
event-emitter是獨立於作用域的,所以在無法存取作用域的服務中使用它是非常理想的。
將使用的函數命名為.on(),.emit()。
沒有對應的$broadcast()函數。
<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、最常用的通訊是服務
因為服務是單例,所以在任何元件內改變服務的值都會影響其他元件,用法很簡單,只要把服務列為依賴就可以了,如上述程式碼所示。
更多程式相關知識,請造訪:程式設計教學! !
以上是淺談angular控制器通訊的4種方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

由於Windows已成為首選的遊戲平台,因此確定其面向遊戲的功能就顯得尤為重要。其中之一是能夠在Windows11上校準XboxOne控制器。借助內建的手動校準,您可以擺脫漂移、隨機移動或效能問題,並有效地對齊X、Y和Z軸。如果可用選項不起作用,您可以隨時使用第三方XboxOne控制器校準工具。讓我們來了解一下!如何在Windows11上校準我的Xbox控制器?在繼續操作之前,請確保將控制器連接到電腦並更新XboxOne控制器的驅動程式。當您使用它時,也要安裝任何可用的韌體更新。 1.使用Wind

Angular.js是一種可自由存取的JavaScript平台,用於建立動態應用程式。它允許您透過擴展HTML的語法作為模板語言,以快速、清晰地表示應用程式的各個方面。 Angular.js提供了一系列工具,可協助您編寫、更新和測試程式碼。此外,它還提供了許多功能,如路由和表單管理。本指南將討論在Ubuntu24上安裝Angular的方法。首先,您需要安裝Node.js。 Node.js是一個基於ChromeV8引擎的JavaScript運行環境,可讓您在伺服器端執行JavaScript程式碼。要在Ub

angular中怎麼使用monaco-editor?以下這篇文章記錄下最近的一次業務中用到的 monaco-editor 在 angular 中的使用,希望對大家有幫助!

隨著網路的快速發展,前端開發技術也不斷改進與迭代。 PHP和Angular是兩種廣泛應用於前端開發的技術。 PHP是一種伺服器端腳本語言,可以處理表單、產生動態頁面和管理存取權限等任務。而Angular是一種JavaScript的框架,可以用來開發單一頁面應用程式和建構元件化的網頁應用程式。本篇文章將介紹如何使用PHP和Angular進行前端開發,以及如何將它們

從零開始學習Laravel:控制器方法呼叫詳解在Laravel的開發中,控制器是一個非常重要的概念。控制器起到了連接模型和視圖的橋樑作用,負責處理來自路由的請求,並返回相應的資料給視圖展示。控制器中的方法可以被路由調用,這篇文章將詳細介紹如何編寫並調用控制器中的方法,同時會提供特定的程式碼範例。首先,我們需要建立一個控制器。可以使用Artisan命令列工具來生

PHP是一種非常流行的程式語言,而CodeIgniter4是一種常用的PHP框架。在開發Web應用程式時,使用框架是非常有幫助的,它可以加速開發過程、提高程式碼品質、降低維護成本。本文將介紹如何使用CodeIgniter4框架。安裝CodeIgniter4框架CodeIgniter4框架可以從官方網站(https://codeigniter.com/)下載。下
