事件的傳播
冒泡
要把事件沿著作用域鏈向上派送(從子作用域到父作用域)汞扎,我們要使用$emit() 函數(shù)季稳。
// 發(fā)送一個事件
// 我們的用戶以當(dāng)前user登錄了
scope.$emit('user:logged_in', scope.user);
- name(字符串)
要發(fā)出的事件名稱擅这。 - args(集合)
一個參數(shù)的集合澈魄,作為對象傳遞到事件監(jiān)聽器中。
向下傳播 $broadcast
// 等等仲翎,購物車去結(jié)賬了
// 當(dāng)購物車在結(jié)賬的時候
// 下面所有的指令都應(yīng)當(dāng)禁用自己
scope.$broadcast('cart:checking_out', scope.cart);
- name(字符串)
要發(fā)出的事件名稱痹扇。 - args(集合)
事件的監(jiān)聽
$on()方法
scope.$on('$routeChangeStart',
function(evt, next, current) {
// 一個新的路由被觸發(fā)了
});
事件對象
事件對象有以下屬性
targetScope(作用域?qū)ο螅?/h2>
這個屬性是發(fā)送或者廣播事件的作用域。
currentScope(作用域?qū)ο螅?/h2>
這個對象包含了當(dāng)前處理事件的作用域溯香。
name(字符串)
這個字符串是觸發(fā)之后鲫构,我們正在處理的事件名稱。
stopPropagation(函數(shù))
/////
我們用$emit() 調(diào)用的有好幾個事件玫坛,它們把事件往上發(fā)结笨, 更多調(diào)用的是$broadcast() 事件。