所以我有2個元素相同的指令:(CoffeeScript的)angularjs相同的指令(外點擊)多個元素
myApp.directive "clickOutside", ["$document", ($document) ->
restrict: "A"
link: (scope, elem, attr, ctrl) ->
elem.bind "click", (e) ->
e.stopPropagation()
$document.bind "click", ->
scope.$apply attr.clickOutside
]
和HTML:
<div class="filter-box" click-outside="showFilterList=false">
<div class="filter-title" ng-click="showFilterList=!showFilterList;">Open</div>
<ul class="filter-list" ng-class="{show:datePickerModel.showFilterList}">
<li></li>
...
...
</ul>
</div>
<div class="filter-box" click-outside="showFilterList=false">
<div class="filter-title" ng-click="showFilterList=!showFilterList;">Open</div>
<ul class="filter-list" ng-class="{show:datePickerModel.showFilterList}">
<li></li>
...
...
</ul>
</div>
我有2名DIV的是點擊在過濾器標題將更改showFilterList爲true,並通過該過濾器列表獲取'show'類。在元素外部單擊會將showFilterList設置爲false,並且filter-list會再次隱藏。對於一種場景,一切正常運行良好:單擊第一個元素filter-title並顯示過濾器列表。點擊第二個元素filter-title將顯示它自己的filter-list,但不會將已經點擊的第一個元素設置爲false。
我該怎麼做才能讓每個指令在觸發時都有自己的範圍?
謝謝!
您是否試過在指令中給出範圍,即'scope:yes'? – Florian
我現在試過了,仍然無法工作 – aviramtsi