要在控制器之間傳遞變量變化需要使用angular中的$broadcast和$emit方法來傳遞,同時使用$on來接收事件并作出響應(yīng)。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名注冊、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、共青城網(wǎng)站維護(hù)、網(wǎng)站推廣。
broadcast譯為廣播,即上級傳遞下級。
示例代碼:
Parent: {{parent}}{{change}} Child: {{child}}
上述代碼使用$watch監(jiān)聽parent的值的變化,當(dāng)發(fā)生變化時就會“廣播”出parentChange事件并傳遞了參數(shù)(輸入框的值),此時子元素作用域中使用了$scope.$on("parentChange, handler)" 來接收parentChange事件,然后接受輸入框的值并賦值給子作用域中的child變量。 這樣就完成了值的傳遞。
效果:
emit譯為發(fā)射,即下級傳遞上級。
示例代碼:
{{change}} Parent: {{parent}}Child: {{child}}
當(dāng)子元素的child值發(fā)生變化時,會向上級發(fā)出childChange事件,此時父元素正在監(jiān)聽的$on(“childChange”)會做出響應(yīng),將傳遞的參數(shù)賦值給parent,整個流程與 broadcast類似。
效果:
上述作用域均存在層級關(guān)系,如果對于同級的作用域該如何做呢?
我們可以使用服務(wù)來廣播事件:
value1:
value2:
我們在服務(wù)中運用了$rootScope,所有的作用域都從屬于它,基于這點,我們可以在根作用域中廣播事件,$rootScope.$broadcast("valueChange", n);,當(dāng)每個子作用域中的值發(fā)生變化時我們都會調(diào)用服務(wù)中的change 方法來廣播這個事件,同時每個作用域又都在監(jiān)聽$on("valueChange") 事件并作出相應(yīng)處理,這樣就實現(xiàn)了子作用域中的值會傳遞給兄弟作用域了。
效果為:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。