2014-01-10 89 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/