2012-12-04 17 views
5

Używam wtyczki sammy.js w mojej aplikacji do obsługi pojedynczych stron. Wtyczka nie działa, gdy użytkownik próbuje poruszać się po stronie to pokazuje następujący błąd na konsoli:Problem z nawigacją w wtyczce javascript 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 

co to jest problem i jak to może być stałe?

EDIT

Sammy kod konfiguracji:

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

Cześć Tom, czy możesz opublikować swój kod konfiguracji sammy? –

+0

@Roysvork sprawdź moją edycję –

+0

Czy upewniłeś się, że poprawnie podłączyłeś swoją stronę do API wtyczki? na przykład LazerSharks

Odpowiedz

0

będzie to prosta praca kod?

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

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

jeśli ten mały Alerts kod „page_home” coś jest nie tak ze skryptu Wewnątrz: to powinieneś być w stanie odpowiedzieć na te pytania: gdzie jest ScanNavigationD-Function? gdzie są "slajdy"/"Strony" - zdefiniowane tablice?

EDYTOWANIE:

OK, zrobiłem kolejny test na moim komputerze. to jest to co zrobiłem:

  1. stworzył html dokumentu
  2. dołączonego pierwszy jQuery następnie 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. Napełniłem vars i funkcje poprosiłem o manekin-treść:

    < scenariusz>

    var ScanNavigationD = funkcja() {} slajdy = [ 'SLAJD1', 'slajd2'] stron = [ 'PAGE1', 'Strona2'];

    < script>

  4. następnie skopiować wklejeniu kodu do mojego dokumentu HTML.

    < script> // kod < script>

  5. Potem stworzył kontener div Menem:

wszystko działało. ostatnią rzeczą, którą widzę, że robisz coś złego jest to, że jesteś tylko w lokalnym systemie plików.

Wydaje się, że sammy.js potrzebuje uruchomić serwer WWW! przynajmniej localhost!

file://... 

nie zadziała

+0

zobaczyć wszystko po "EDIT:" – hereandnow78

2

@ tom-rider problem jest app.run wywołana bez argumentów. Funkcja app.run Sammy przyjąć argumentu START_URL ustawić (za pomocą metody _setLocation) app bieżącą lokalizację zanim wywołanie metody _checkLocation aby sprawdzić, czy adres URL zostanie zmieniony ... Więc spróbuj zmienić

app.run(); 

z

app.run('#/'); 

ta praca dla mnie.

Postępuj zgodnie z fiddle dla działającego demo i spójrz na konsolę: brak błędu!

+0

Dzięki, miałem ten sam problem i to rozwiązało. – user3281466

0

Wygląda na to, że wysyłasz page_home jako parametr podczas uruchamiania skryptu, który rozpoznaje błąd 404 nie znaleziony. Spróbuj wyszukać 'page_home' w swoich plikach, rekurencyjnie, aby znaleźć skąd pochodzi.