目錄
公司專案使用AngularJs 1.6
開發,面對使用者複雜又特殊的requirement ,一個page切多個controller
也方便未來維護,那controller
間如何來互相傳值呢?
在AngularJs
中 $emit
, $broadcast
and $on
用來處理各controller
事件處理
-
$on
用來接收$emit
,$broadcast
的事件(event) -
$emit
能向父級別parent controller傳遞事件(event)與資料(data) -
$broadcast
向子級別child controller傳遞事件(event)與資料(data)
1. 說明
- 若同父級別向子級別傳遞事件(
$broadcast
),多個同level
子級別的controller
可以一起接收到事件,但其中一個子級別傳遞事件($emit
),只有這個子級別的父級別可以收到事件,其他同level
父級別controller
無法收到事件