2016-12-27 9 views
1

以前私がNGクリック$event.stopPropagationを呼び出すためにイベントを追加しました:角度データテーブルTD用NG-クリックイベントを追加

<td ng-click="$event.stopPropagation();"> 
    <button type="button" class="btn btn-default margin-right-5" ui-sref="patient({ id : patient._id })"> 
     <i class="fa fa-edit"></i> 
    </button> 
    <button type="button" class="btn btn-danger" ng-click="vm.deletePatient(patient._id)"> 
     <i class="fa fa-trash-o"></i> 
    </button> 
</td> 

今、私は私のコードをリファクタリングしてDTColumnBuilder

DTColumnBuilder.newColumn('_id').withTitle('Options').notSortable() 
.renderWith(function (data, type, full, meta) { 
    return '<button type="button" class="btn btn-default margin-right-5" ui-sref="patient({ id : \'' + data + '\' })">' + 
      '<i class="fa fa-edit"></i> ' + 
     '</button>' + 
     '<button type="button" class="btn btn-danger" ng-click="vm.deletePatient(\'' + data + '\')">' + 
      '<i class="fa fa-trash-o"></i>' + 
     '</button>' 
}) 

を使用していること$ event.stopPropagationをparent tdに追加するにはどうすればよいですか?

答えて

1

これが最良の方法であるかどうかわかりませんが、divを追加して代わりに$event.stopPropagation()を追加しました。 DTColumnBuilderで新しい列を追加するときにng-clickメソッドがある場合は、私のコードをリファクタリングできるように教えてください。これは単なる回避策です。

DTColumnBuilder.newColumn('_id', 'foo').withTitle('Options').notSortable() 
.renderWith(function (data, type, full, meta) { 
    return '<div ng-click="$event.stopPropagation()">' + 
     '<button type="button" class="btn btn-default margin-right-5" ui-sref="patient({ id : \'' + data + '\' })">' + 
      '<i class="fa fa-edit"></i> ' + 
     '</button>' + 
     '<button type="button" class="btn btn-danger" ng-click="vm.deletePatient(\'' + data + '\')">' + 
      '<i class="fa fa-trash-o"></i>' + 
     '</button>' + 
    '</div>' 
})