2012-12-04 12 views
5

Sto utilizzando il plug-in sammy.js nella mia applicazione per pagina singola. Il plugin non funziona, ogni volta che utente tenta di spostarsi nella pagina che sta mostrando il seguente errore sulla console:Problema con la navigazione nel plugin javascript di sammyJS?

[Tue Dec 04 2012 17:48:13 GMT+0530 (India Standard Time)] #main 404 Not Found get /page_home 
Error 
arguments: undefined 
get stack: function() { [native code] } 
message: "404 Not Found get /page_home " 
set stack: function() { [native code] } 
type: undefined 
__proto__: d 

Cos'è questo problema e come può essere risolto?

EDIT

Sammy codice di configurazione:

var app = $.sammy('#main', function() { 
     this.get('#/:name', function() { 
      var id = this.params['name']; 
      $.trim(id); 
      var flag = true; 

      if ($("#main").hasClass("presentation")) { 
       $.each(slides, function (i, v) { 
        if ($(v).attr("class") == id) { 
         ScanNavigationD(id); 
         flag = false; 
         return false; 
        } 
       }); 
       if (flag) { 
        ScanNavigationD($(slides[0]).attr("class")); 
       } 
      } 
      else if ($("#main").hasClass("printdoc") || typeof $("#main").attr("class") == "undefined") { 
       $.each(Pages, function (i, v) { 
        if ($(v).attr("class") == id) { 
         ScanNavigationD(id); 
         flag = false; 
         return false; 
        } 
       }); 
       if (flag) { 
        ScanNavigationD($(Pages[0]).attr("class")); 
       } 
      } 
     }); 
    }); 

    $(function() { 
     app.run(); 
    }); 
+0

Ciao Tom, puoi pubblicare il tuo codice di configurazione sammy? –

+0

@Roysvork controlla la mia modifica –

+0

Ti sei assicurato di aver collegato correttamente la tua pagina all'API del plugin? per esempio. LazerSharks

risposta

0

sarà questo lavoro semplice codice?

var app = $.sammy('#main', function() { 
    this.get('#/:name', function() { 
     alert(this.params['name']); 
    }); 
}); 

$(function() { 
    app.run(); 
}); 

se questo piccolo avvisi codice 'page_home' c'è qualcosa di sbagliato con lo script all'interno: allora si dovrebbe essere in grado di rispondere a queste domande: dove è la ScanNavigationD-Function? dove sono definite le "diapositive"/"Pagine" - gli array?

EDIT:

ok, ho fatto un altro test al mio computer. questo è quello che ho fatto:

  1. ha creato un documento HTML
  2. inclusa prima jQuery poi sammy.js

    < script src = "http://code.jquery.com/jquery-1.8. 3.min.js" type = "text/javascript">

    < script src = "sammy.js" type = "text/javascript">

  3. ho riempito il VAR e funzioni ho chiesto con dummy-contenuti:

    < script>

    var ScanNavigationD = function() {}, diapositive = [ 'slide1', 'slide2'], Pages = [ 'page1', 'page2'];

    < script>

  4. poi copio incollato il codice nel mio documento HTML.

    < script> // il codice < script>

  5. Poi ho creato il contenitore div-principale:

tutto ha funzionato. l'ultima cosa che vedo che stai sbagliando è che sei solo sul tuo filesystem locale.

sammy.js sembra aver bisogno di un server web per l'esecuzione! almeno localhost!

file://... 

non funziona

+0

vedere tutto dopo "MODIFICA:" – hereandnow78

2

@ tom-rider il problema è l'app.run chiamato senza discutere. La funzione app.run Sammy accetta un argomento START_URL per impostare (tramite il metodo _setLocation) la posizione attuale applicazione prima chiamata di metodo _checkLocation per verificare se l'URL è cambiato ... quindi cercate di cambiare

app.run(); 

con

app.run('#/'); 

questo lavoro per me.

Segui questo fiddle per una demo funzionante e guarda la console: nessun errore!

+0

Grazie, ho avuto lo stesso problema e questo lo ha risolto. – user3281466

0

Sembra che si invii page_home come parametro quando si esegue lo script che risolve un errore 404 non trovato. Prova a cercare 'page_home' in tutti i tuoi file, ricorsivamente per trovare da dove proviene.

Problemi correlati