2014-01-10 27 views
0

我試圖在DOM中點擊某個元素時切換變量,並且出現了一些奇怪的行爲。Angular js ng-click在子元素中不起作用

Full Example Here

從本質上講,如果我穿上可供選項的NG單擊股利和離開控制器上的可供選項標籤 DIV,事件觸發(但適用於一切裏面的。選項 div)。由於某種原因,我不得不再次使用ng控制器。

<div ng-app ng-controller="Swipe" class="container"> 
    <div class="options" ng-click="swiped=!swiped2"> 
     <div ng-controller="Swipe" class="options-tab" ></div> 
    </div> 
</div> 

如果我把它放在我想要的元素上,它不會觸發事件。

<div ng-app ng-controller="Swipe" class="container"> 
    <div class="options"> 
     <div ng-controller="Swipe" class="options-tab" ng-click="swiped=!swiped2"></div> 
    </div> 
</div> 
+1

爲什麼你應用兩次相同的控制器?這將創建兩個範圍。 –

+0

我知道,這很奇怪。如果我不這樣做,這兩種情況都行不通。在JSFiddle中刪除它並親自查看。我需要頂部的範圍,因爲我點擊的元素之上的元素需要看到變量的變化,但我希望能夠擺脫第二個變量。 – Tantelope

+1

您不能在其本身內部使用控制器。 – Stewie

回答

2

你有幾個問題:

  1. 多控制器聲明創建重複範圍
  2. ng-click="swiped1=!swiped1"optionsoptions-tab元素都(它被設定,然後立即反轉)
  3. 你第二個例子設置爲ng-click="swiped=!swiped2"而不是ng-click="swiped2=!swiped2"

更新工作提琴:http://jsfiddle.net/Xya3f/2/