Dugan Chen's Homepage

Various Things

The Javascript MVC framework: Part 3

It’s possible to make the Javascript MVC framework we’ve built even more like Django.

To the file that contains the createHashHandler function, add a url function. It corresponds to Django’s django.conf.urls.defaults.url function, and it’s very simple:

var url = function (regex, controller) {
    return {
        re: regex,
        controller: controller
    };
};

Now your initialization function can look like this:

/*global $, createHashHandler, url, handleDigits, handleWhitespace, handleWordChars, handleAllCaps */

$(function () {
    var urlPatterns = [
            url(/(\d+)/, handleDigits),
            url(/(\s+)/, handleWhitespace),
            url(/(\w+)/, handleWordChars),
            url(/([A-Z]+)/, handleAllCaps)
        ],
        handleHashChange = createHashHandler(urlPatterns);
    $(window).bind('hashchange', handleHashChange);
    handleHashChange();
});

If you’ve used Django, you can see that this now looks exactly like a Django urlconf file.