ng-class $ event.stopPropagation()不在angular中使用parent

时间:2015-01-12 15:49:22

标签: javascript angularjs

我有2个嵌套ng-repeats。父母根据ng-click向自己添加一个类,但是当我点击这个孩子时,它仍然发生在我认为不应该的时候。

<div class="add-filter-tags" data-filter="{{f1}}" ng-class="{'tag_selected' : tag_selected }" ng-repeat="(f1,f2) in filters" ng-click="tag_selected = !tag_selected;">
            <span>{{f1}}</span>             
        <div class="add-filter-tags sub-filter-tag"  data-filter="{{f1_2}}"  ng-click="$parent.$event.stopPropagation()" ng-repeat="(f1_2,f2_2) in filters[f1]" sibs ><span>{{f1_2}}</span></div>

</div> 

编辑:我在没有$parent的情况下尝试了它,但它没有用。

1 个答案:

答案 0 :(得分:0)

您应该停止对子项的事件传播,使其不会冒泡到父级,也不会将$event对象附加到$parent。这是与ng-click传递的特殊论点,即

 ng-click="$event.stopPropagation()"

angular.module('app', []).controller('ctrl', function($scope) {

});
.tag_selected {
  color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  <div class="add-filter-tags" ng-class="{'tag_selected' : tag_selected }" ng-if="true" ng-click="tag_selected = !tag_selected;">
    <span>Parent</span> 
    <div class="add-filter-tags sub-filter-tag" ng-click="$event.stopPropagation()" ng-if="true"><span>Child</span>
    </div>

  </div>
</div>