主な範囲では、ng-repeatが実行されています。指令AngularJsからコントローラ機能にアクセスするにはどうすればよいですか?
<table class="datatable" prevent-right-click visible="isVisible">
<tr ng-repeat="t in templateData">
<td confusedFunction="clickedonname(t)">{{t.templateName}}</td>
<td>{{t.templatePath}}</td>
</tr>
</table>
防ぐ-右クリックして、最初のtd要素に、それぞれ右クリック要素にコメントを取ることでコメントボックスを持つカスタムコンテキストメニューです。とにかく、繰り返し要素を受け取り、その要素にコメントを記録できるように指示を渡す関数を書くことができますか?また、防止右クリックには独立したスコープがあります。
これは私の指示コードです。ここで
app.directive('preventRightClick', function() {
return {
restrict: 'A',
scope: {
visible: '='
},
link: function($scope, $ele) {
$ele.on('contextmenu', '*', function(e) {
e.preventDefault();
$scope.$apply(function() {
$scope.visible = true;
$('.parented').css({right:50, top:50}).show();
})
e.stopPropagation();
});
$(document).on('click', '*', function (e) {
if ($(e.target).parents('.parented').length > 0) {
}
else{
$('.parented').hide()
$ele.off('contextmenu', '*', function(){
console.log('Context menu off')
})
}
})
$scope.confusedFunction = function(t){
console.log(t.templateName)
console.log('coming from clickedonname')
}
}
};
})
あなたはクリックを受信が情報を送信するようにしたいですrightRightClickディレクティブを防ぐには? –
はい、引数として(t)を渡す必要があります。私は指示の中に繰り返しオブジェクトが必要です。 @JulienTASSIN – Aijaz
もしそうなら、1つ目の方法はコントローラ機能のイベントを$ rootScopeに対応する$を指示文で$ブロードキャストすることです。 –