for - Redirección extraña usando el enlace de datos submit, sammy.js y knockout.js juntos
knockout js data bind text (1)
Después de mucha búsqueda, y al no encontrar ninguna respuesta aquí en SO, terminé encontrando esto:
https://groups.google.com/forum/?fromgroups#!topic/sammyjs/EYW-2Ygk3z8
Y modifiqué mi código a esto:
Sammy(function() {
// Override this function so that Sammy doesn''t mess with forms
this._checkFormSubmission = function(form) {
return (false);
};
}).run();
De modo que Sammy nunca intenta hacer algo especial cuando se envía un formulario en mi página. Ya que estoy usando Knockout, no planeo usar Sammy para ningún formulario. Si desea un código más complejo o una versión de complemento, puede ver la URL anterior, pero para mí, y sospecho que para la mayoría de los que usan KO, es menos código y más fácil simplemente desactivar esta función de Sammy.
Tengo un formulario como este en mi página:
<form data-bind="submit: AddFolder"></form>
Si tengo este código en mi script JS (por supuesto, eliminé todo el código no relacionado y probé para asegurarme de que aún puedo recrear con solo este código, normalmente tendrá más código aquí, como .get y .post funciones):
Sammy(function() {
}).run();
Cuando se envía el formulario, la página redirige a una URL extraña como ?ko_unique=1
Si elimino la parte de Sammy de mi script, esto no sucede. Creo que tiene algo que ver con el evento de burbujeo y Sammy y Knockout conectan el OnSubmit y el navegador solo respeta el valor de retorno de la última función llamada.