トグル付きのシンプルなフォームを作成しています。トグルを自分のモデルにバインドしたいwelcomeEmail.welcome_email_on
. トグルをクリックするとtoggleWelcomeEmail()
、コントローラーが呼び出されます。この関数は、新しい状態が true か false かをチェックしてから、何かを行います。たとえば、トグルがオフの場合、ユーザーがそれをクリックするとオンになります。すでにオンになっていて、ユーザーがクリックした場合、toggleWelcomeEmail()
関数は確認プロンプトを表示し、ユーザーがプロンプトでアクションを確認するまでトグルをオンのままにする必要があります。
私が抱えている問題は、チェックボックスのデフォルトの動作はng-model
、ng-checked
ユーザーがチェックボックスをクリックしたときにモデルを更新することです。私がやりたいことは、デフォルトを防ぐことです。チェックボックス/トグルの状態をモデルに反映させたいのですが、クリックしたときにモデルを更新したくありません。代わりに、私は電話することを好みますtoggleWelcomeEmail()
。
私の質問は、どうすればこれを達成できますか? ng-checked
と の両方を使用してみましng-model
たが、どちらも同じように動作します。2 つのトグルを作成し、 の状態に基づいてそれらを表示/非表示にすることができることはわかっていますwelcomeEmail.welcome_email_on
が、そうすると、素敵なトグル アニメーションが失われてしまいます。$event.stopPropagation()
アクションにを付けるという明らかなアプローチも試しましたng-click
が、効果はありませんでした。