0

こんにちは、Angular js で作業しています。削除ボタンをクリックしたときに確認メッセージを追加したいと思います。

私はこのコードを試しました:

<a data-ng-click="removeTodo(this)" href="javascript:;"
onclick="javascript:return confirm('Are you sure you want to delete ?')">Delete</a>

これは確認ボックス付きのOKとキャンセルボタンが表示されます。OKボタンをクリックすると次のプロセスに進みますが、キャンセルボタンをクリックすると同じプロセスに進むのと同じです確認ボックスは非表示ではありませんでした(OKボタンは戻りますtrue ですが、キャンセル ボタンと同じように false ではなく true を返します)

しかし、削除ボタンをクリックして以下のコードを使用するとうまくいきます

 $scope.removeTodo = function (Student) {
        if (!confirm("Do you want to delete this ? ")) {
            return false;
        }

   //please think , I added Some code for next process in here 
};

何が問題ですか ?私が逃したものは何ですか?最初のコードが機能しなかったのはなぜですか?

4

1 に答える 1

1

これはreturn false、デフォルトのアクションを防止し、イベントの伝播を停止することと同じであるためです。これにより、先祖要素に添付されたハンドラーが実行されなくなります...しかし、あなたの場合、両方のクリックハンドラーが同じ要素に添付されています。

したがって、confirm が false を返した場合でも、Angular クリック ハンドラが実行されます。

于 2013-10-15T06:38:58.653 に答える