2016-10-29 16 views
1

JavaScriptのカレンダーを作成していて、1日をクリックするとng-clickを呼び出せるようにしたいと考えています。現在、私はNG-クリック機能が働いていることがあるが、私はそれにクリックされた要素を添付することはできません。 AngularJSクリックソース要素を取得

var dateDiv = document.createElement('div'); 
dateDiv.setAttribute('ng-click', 'getTimeTables(' + fullDate + ', this);'); 
dateDiv.className += ' today'; 
$compile(dateDiv)($scope); 

はまた、角度の$イベントでこれを交換しようとした、と私はそれが働いて得ることができないか、私は「ドン$($ event.currentTarget).addClass( 'newclass');としてください。何もしていないようです。

+0

あなたはこれを試してみましたか? $イベントを関数に渡します。 ** getTimeTables( '+ fullDate +'、$ event)**。 そして、このようなクラスを追加してください:$(event.target).addClass(); – Natiq

+0

あなたは 'dateDiv'を通して要素への参照を持っていますが、なぜそれを取得したいのですか? –

+0

@ Maximusもし私がdateDiv.setAttribute( 'ng-click'、 'getTimeTables(' + fullDateObject + '、' + dateDiv + ');')を実行すると、角度エラーが発生します。 – Xabi

答えて

1

あなたは$event.target

var dateDiv = document.createElement('div'); 
dateDiv.setAttribute('ng-click', 'getTimeTables(' + fullDate + ', $event);'); 
dateDiv.className += ' today'; 
$compile(dateDiv)($scope); 

そしてgetTimeTables内部を要素にアクセスすることができます

$scope.getTimeTables = function(fullDate, $event) { 
    $($event.target).addClass('newclass'); 
} 
+0

それは働いた、ありがとう! – Xabi

+0

ようこそ)しかし、あなたのアプローチを再考し、コールバックを通さずにディレクティブ内の要素への参照を使用することができます –

関連する問題