[英]Multiple parent-child scope event trigger issue
我有一個父范圍的指令,也有另一個子范圍的指令。 在模板中,我有幾個父子范圍。 像這樣。
ParentScope1
- ChildScope1
ParentScope2
- ChildScope2
如果更改“父級”中的值,則將其廣播給“子級”。 我正在使用$rootScope.$broadcast
broadcast從父級廣播。 我正在使用$rootScope.$on
接受此子項更改。
我的問題是:
現在,如果我更改ParentScope1中的值,它將廣播到ChildScope1。 然后,我將在ParentScope2中更改一個值,該值將廣播到ChildScope2,但也將廣播到ChildScope1。
我想要:更改ParentScope1中的值,它將廣播到ChildScope1。 更改ParentScope2中的值,它將廣播到ChildScope2。 我在網上搜索了一段時間,但沒有找到解決方案。 也許我沒有使用正確的關鍵字進行搜索。 請指教。 謝謝。
在您的指令集定義中
scope : true
然后使用
$scope.$broadcast
$scope.$on
這可能應該很好
發布您的代碼,以便我們更好地了解問題
您正在尋找父子指令之間的通信,可以使用以下方法,但是兩個指令將通過以下方式緊密結合:
需要控制器 -獲取父節點指令控制器的同一節點的句柄。 要求 :'^ parnetDireName'用於在父節點上查找控制器。 如果不使用^,它將僅查找相同的節點。 '?' ?^“,”?^^“,” ^^“。鏈接函數的第四個參數用於獲取控制器。它可以使用控制器的prop /方法。訪問多個控制器,因為Require將具有數組-require:['^ dir1','^ dir2']。 鏈接函數將具有cntrl數組,並且可以按相同順序通過數組元素進行訪問
嵌套指令的前鏈接和后鏈接功能 -
--------------------------------- 另一種解耦方式 -------------- -------可以通過三種方式來設置指令范圍和包含控制器范圍之間的關系--與包含控制器共享范圍的指令。 任何新
item /通過指令修改的item將成為父范圍的一部分。 它是default或scope: false-具有繼承的scope的指令。 指令添加的任何新項目都將無法通過包含控制器看到。 指令范圍可以從父范圍讀取所有數據。 使用scope:true屬性將其激活。 子級可以看到父級數據,並且可以覆蓋或創建新變量。
- 隔離范圍 。 兩者都無法互相讀取數據。 需要對象映射才能讀取父數據。 指令范圍映射將具有對象名稱,並且將從html傳遞相同的對象。 有三種接收參數的方法--使用完整對象數據 ->'='-使用簡單值(例如標記為字符串)-'@'。 '@sampleVar',其中sampleVar是html中變量的名稱。 范圍{cntrollerStrVarName:'@htmlStrVarName'}
- 函數參數 -'&'用於傳遞參數。 可以使用({paramName:'value'})覆蓋方法參數
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.