2017-05-04 67 views
0

我有一個元素列表,每個元素都包含一個ng-click。嵌套在每個元素中的是應該切換Bootstrap模式的div。

我已將$ event.stopPropagation添加到嵌套div,因爲我不希望父元素的ng-click事件觸發,但是這會導致模式無法開始顯示。

<div id="segment{{segment.Id}}" class="message" ng-class="{activeSegment: segment.Selected}" ng-click="!segmentIsLoaded || selectSegment(segment)"> 
     <div> 
      <div class="pull-left"> 
       <span>ID: {{segment.Id}}</span> 
       <span>{{segment.Name}} </span> 
       <i class="fa fa-info-circle fa-lg" data-toggle="tooltip" data-original-title="{{segment.Description}}" tooltip></i><br /> 
             <small>{{formatJsonDate(segment.Updated)}}</small> 
       </div> 
       <div class="btn btn-danger pull-right" data-toggle="modal" data-target="#deleteSegmentModal" ng-click="$event.stopPropagation();"> 
        <span><i class="fa fa-trash-o" aria-hidden="true"></i></span> 
       </div> 
     </div> 
    </div> 

任何已知的解決此問題的方法?

我也許應該提到stopPropagation()的作用就是防止點擊事件觸發。我的問題是自舉模式沒有被通過數據切換屬性激活

+0

_「這個任何已知的變通辦法?」 _以編程方式打開模式。嵌套在每個元素裏面的是一個按鈕「_不,不存在。 – zeroflagL

+0

_嵌套在每個元素裏面的是一個button_將它改爲_Nested裏面的每個元素是一個** div ** _ Happy? –

回答

1

您是否嘗試過使用指令

<a ng-click='expression' stop-event='click'> 
.directive('stopEvent', function() { 
    return { 
     restrict: 'A', 
     link: function (scope, element, attr) { 
      if(attr && attr.stopEvent) 
       element.bind(attr.stopEvent, function (e) { 
        e.stopPropagation(); 
       }); 
     } 
    }; 
}); 

檢查,以便鏈接How can I make an AngularJS directive to stopPropagation?

+0

你能解釋一下爲什麼,使用指令,會停止與推導數據切換事件推斷角? –

相關問題