web-dev-qa-db-ja.com

すべてのタイプの要素について、特定の適用条件でngクリックを無効にします

私のアプリケーションでは、以下のようなng-clickディレクティブでいくつかの要素をバインドしました

<a ng-click="DoSomething()"/>
<button ng-click="DoSomethingElse()">xyz</button>
<span ng-click="DoSomething()"></span>

現在、私のアプリケーションでは、特定のシナリオでng-clickのデフォルトの動作が発生するようにしていますが、特定のシナリオでは、コールバック関数(DoSomething()、DoSomethingElse()..)を完全に無効にします。

このシナリオを確認するために、$scope.IsClickEnable = true/false;

では、このような動作をどのように達成できますか?

Ng-disableを使用して要素を無効にできますが、ボタンの種類の要素でのみ機能するため、私のシナリオでは機能しません

また、すべての関数呼び出しで条件を確認することもできますが、ng-clickの動作などをオーバーライドすることにより、これを達成するためのより具体的な方法が必要です。

26
Rushi Soni

次のようにします:

<button ng-click="!IsClickEnable||DoSomethingElse()">xyz</button>

isClickEnableの値がtrueの場合、ボタンクリックで関数が呼び出され、関数 'DoSomethingElse()'が呼び出されます。それ以外の場合は呼び出されません。

68
Aniket