Angular を使用して属性 (または少なくともその値) を削除するにはどうすればよいですか? 具体的には、ng-click
イベントがあるとしましょう。これを一度だけ起動したいのですが、これを行う最も簡単な方法は、ng-clickイベントで「自己破壊」を行うことだと思います。の線に沿った何か
elementClicked = function(){
//do work
element.ngClick=null;
}
Angular を使用して属性 (または少なくともその値) を削除するにはどうすればよいですか? 具体的には、ng-click
イベントがあるとしましょう。これを一度だけ起動したいのですが、これを行う最も簡単な方法は、ng-clickイベントで「自己破壊」を行うことだと思います。の線に沿った何か
elementClicked = function(){
//do work
element.ngClick=null;
}
ng-click 属性の削除は機能しません。これは、属性を削除した後もクリック イベント リスナーが存在するためです。ng-click バインディングを null に設定する必要があります。
クリックワンスディレクティブを作成しました。要素のクリック イベントをリッスンし、最初に ng-click バインディングを実行してから、それを削除します。
.directive('clickOnce', function() {
return {
scope: {
'ngClick': '&'
},
link: function(scope, element) {
element.bind('click', function() {
if (scope.ngClick) {
scope.ngClick();
scope.ngClick = null;
}
});
}
}
});
マークアップは次のとおりです。
<button click-once ng-click="doThis()>my button<button>
ここにjsFiddleがあります。