Ich kann nicht herausfinden, wie man eine Knockout-Klickbindung erstellt, die den WertAccessor nur ausführt, wenn ein JavaScript-Bestätigungsdialog wahr zurückgibt.Knockout Klickbindung mit Javascript bestätigen
Es ist wohl so etwas wie folgt aussehen:
<a data-bind="confirmClick: { message: 'Are you sure?', click: someMethod }">Confirmable link</a>
Intern wird die confirmClick Bindung würde wie etwas tun:
if (confirm(message)) {
click();
}
Ich weiß, ich könnte mit bekommen, um dieses den confirm(...)
Code, indem sie tun in meinem viewModel, aber das scheint nicht der geeignete Ort, um diese Art von Code zu setzen. Ich könnte wahrscheinlich auch so weit gehen, diese Art von Dialog mit jQueryUI oder Bootstrap zu bestätigen, aber ich möchte etwas, das ich einfach in ein Projekt einfügen kann.
Ich habe das internets ohne Glück abgekocht .. ich auf dem Quellcode für Knockout des Click-Ereignis (https://github.com/knockout/knockout/blob/master/src/binding/defaultBindings/event.js) selbst gesucht, aber es sieht nicht freundlich ...
überhaupt Hilfe würde sehr geschätzt werden!
Nur um die Dinge zum Abschluss bringen .... was sollte die anonyme SiehöreneinKlicken: function() { ....} 'return wenn confirm false zurückgibt? –
es wird 'undefined' zurückgeben, damit KO Ihren Handler nicht anruft, auch die Browser Aktion (Klick auf den Link) wird nicht ausgeführt. Aber Sie können dies nach Ihren Bedürfnissen ändern. – nemesv
Bereits getestet, bevor die andere Antwort kam und es funktioniert unglaublich gut. Ich bin froh, dass ich die Zeit damit verbracht habe zu untersuchen, wie ich das alleine machen kann, aber ich kam diesem Niveau der Erleuchtung nicht nahe. Vielen Dank! –