Domanda

OK così ho appena iniziato a utilizzare sammy.js, io non faccio molto bene, ma sono stato in grado di ottenere le nozioni di base di lavoro abbastanza rapidamente. modulo HTML sto usando

<form id="contact_form" action="#/form" method="post">
<label for="name">Name:</label><input  class="textbox" type="text" name="name" id="name" />
<label for="email">E-mail:</label><input  class="textbox" type="text" name="email" id="email" />
<label for="message">Message:</label><textarea class="textbox" name="message"  id="message"></textarea>
<button type="submit" name="submit" value="Submit" id="submit" />
<p id="message_outcome"></p>

js sto usando per instradare i miei URL

var app = $.sammy(function(){
    this.element_selector = '#page1';
    this.get('#/about',function(context){
        $("ul#nav li").removeClass("active"); //removes "active" class
        $('#nav_1').addClass("active"); //adds "active" class to the tab that is selected
        $.post('home/about','', function(resp){
            $('#page1').html(resp);
            $('#page_container').cycle(0); //the number of the div that will be shown on click
        });
    });

    this.post('#/form', function(context){
       this.log('Form Submission');

    });
});


$(function(){
    app.run('#/about');
});

Quando l'URL è # / forma in essa, ho ottenere un log della console che dice il suo percorso in esecuzione get ( '# / form') .. tutte le idee?

Ecco qualche informazione in più che aiutano maggio

plugin jQuery che sto utilizzando parte Sammy

http://jquery.malsup.com/cycle/

Questo è ciò che la mia console cromata dice quando fare clic su Invia sulla mia forma.  [Sun 10 Ottobre 2010 05:29:27 GMT-0400 (Eastern Daylight Time)] runRoute get # / modulo /public/js/lib/sammy.js:96 [Sun 10 Ottobre 2010 05:29:27 GMT-0400 (Eastern Daylight Time)] 404 Not Found get # / form Errore: 404 Not Found get # / form

È stato utile?

Soluzione

Un'altra cosa da tenere a mente per le rotte post è quello di capire come funziona Sammy. Quando Sammy viene inizializzato ottiene delimitata ad un selettore jQuery.

var app = $.sammy('#content', function() {
   ...
});

Per i percorsi postali, Sammy si lega a tutte le forme all'interno del selettore utilizzati per l'inizializzazione (#content nel nostro esempio) l'applicazione e ascolti per gli eventi click generati dal modulo di presentare quanto questi ottiene gorgogliare fino al genitore. Ora, quando si vede l'evento presenterà per la forma si eseguirà il percorso corrispondente se i punti del modulo in un percorso.

Su cosa da tenere a mente è che se il modulo è al di fuori del selettore principale (per esempio in intestazione, che è al di fuori #content) allora Sammy non potrà mai ricevere la pubblica un evento e via posta non sarà mai eseguito.

Altri suggerimenti

Questo perché si esegue un HTTP GET per '# / forma' se hai appena digitato un URL nel browser. Il modo per attivare il POST sarebbe quello di inviare a formare. Si desidera impostare sia get e percorsi postali. Prendi mostra la forma e le maniglie pubblicare la presentazione.

Recentemente ho scoperto che Sammy.js la cattura di eccezione provenienti da alcuni scambi di definizione codice all'interno app erronee JavaScript la richiesta originale a qualche GET generico con l'URL originariamente inviati. Questo è veramente confusa e tutto quello che dovete fare è eseguire il debug di script per una qualche funzione / metodo di uso improprio. Quando si ottiene tutto ripulito, l'originale POST passa attraverso come per magia.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top