Hello guys.
I've decided to use sammy for routing on the client side. Currently, my setup is really simple and looks like this:
var app = $.sammy("#mainContent", function () {
this.get("#/", function(context) {
//default route
if (!self.tecnico) {
self.navigate("login");
return;
}
//load default
self.navigate("main");
});
this.get("#/login", function (context) {
self.loadHtmlFor("login");
});
this.get("#/main", function(context) {
self.loadHtmlFor("main");
});
//don't mess with my forms
this._checkFormSubmission = function(frm) {
return false;
};
});
After searching the web, it seems like I need to set the _checkFormSubmission in order for it to ignore form submissions. I'm doing this because I'm using knockout for binding my objects and intercepting form submissions.
My problem is that my routes are nout being "picked up" by sammy. For instace, my page initially loads a login form and after the user authenticates herself, I'm trying to redirect it to main with code like this:
self.navigate = function(id) {
var url = "#/" + self.views[id].propName; /
window.setTimeout(function() {
app.setLocation(url);
},
100);
};
the browser changes the path (
http://mysite.pt/demo#/main), but my #/main route function is not called and that means that the HTML for the page is not replaced. Looking at the code, it seems like sammy's location-changed event is being triggered, but the truth is that my route is not called.
What am I missing?
thanks.
Luis