Skip to content

Commit

Permalink
[ss] finished maintaining state
Browse files Browse the repository at this point in the history
  • Loading branch information
dscape committed Sep 22, 2011
1 parent 4dd8d0c commit 9b64dc6
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 13 deletions.
2 changes: 1 addition & 1 deletion 03-single-page-apps/model-ss.js
Expand Up @@ -579,7 +579,7 @@ $(document).ready(function(){
}, viewModel);

window.mailViewModel = viewModel;
ko.link_observable_to_ss_route(viewModel.go);
ko.link_observable_to_ss_route(viewModel);

ko.applyBindings(viewModel);
});
6 changes: 5 additions & 1 deletion libs/ss.js
Expand Up @@ -309,7 +309,11 @@
Router.prototype.getState = function() {
return this.state;
};


Router.prototype.currentRoute = function() {
return this.explode();
}

Router.prototype.getRoute = function(v) {

var ret = v;
Expand Down
26 changes: 15 additions & 11 deletions libs/ss.routes.js
@@ -1,17 +1,21 @@
(function () {
var routes = { '/:folder' : { on: function() { return; } }
, '/:folder/:email' : { on: function() { return; } }
ko.link_observable_to_ss_route = function (v) {
var routes = { '/:folder' : { on: update_bindings }
, '/:folder/:email' : { on: update_bindings }
}
, router = Router(routes)
, $ = window.jQuery
, folder = v.selectedFolder
, email = v.selectedMailId
, go = v.go
;

ko.link_observable_to_ss_route =
function (go) {
go.subscribe(function (value) {
return router.setRoute(value);
});
};

function update_bindings() {
var current_route = router.currentRoute();
if(folder && folder() !== current_route[0]) { folder(current_route[0]); }
if(email && email() !== current_route[1]) { email(current_route[1]); }
}

router.init("#/");
})();

return go.subscribe( function (value) { return router.setRoute(value); });
};

0 comments on commit 9b64dc6

Please sign in to comment.