SitePen: Creating and Enhancing Dojo Classes

By  on  

You have probably noted over the past few months that I've been working a lot with the Dojo Toolkit.  SitePen has been kind enough to allow me to guest blog about a Dojo topic I find very interesting:  creating and enhancing Dojo classes.  From the post:

Like all top-notch JavaScript toolkits, Dojo tries to make its classes as flexible as possible, knowing that users of the toolkit may have different ideas about how a given class or class method should work. Luckily, Dojo provides you a number of methods by which you can subclass or modify existing classes. Let's examine a few ways you can make Dojo classes exactly the way you like.

Click here to check it out!

Recent Features

  • By
    Chris Coyier’s Favorite CodePen Demos

    David asked me if I'd be up for a guest post picking out some of my favorite Pens from CodePen. A daunting task! There are so many! I managed to pick a few though that have blown me away over the past few months. If you...

  • By
    Regular Expressions for the Rest of Us

    Sooner or later you'll run across a regular expression. With their cryptic syntax, confusing documentation and massive learning curve, most developers settle for copying and pasting them from StackOverflow and hoping they work. But what if you could decode regular expressions and harness their power? In...

Incredible Demos

  • By
    Creating the Treehouse Frog Animation

    Before we start, I want to say thank you to David for giving me this awesome opportunity to share this experience with you guys and say that I'm really flattered. I think that CSS animations are really great. When I first learned how CSS...

  • By
    CSS Filters

    CSS filter support recently landed within WebKit nightlies. CSS filters provide a method for modifying the rendering of a basic DOM element, image, or video. CSS filters allow for blurring, warping, and modifying the color intensity of elements. Let's have...

Discussion

  1. Bitels

    Hi,
    Maybe you’ll be able to help me with understanding new way of class definition in new dojo. I’m using latest version of dojo. I try to define a few classes in separate files. Example (js/TwitterManager.js):

    require([ "dojo/_base/declare", "dojo/request/script"],
        function( declare, script)
        {
           declare("TwitterManager", script, {
                // The default username
                username: "defaultUser",
                get: function()
                {
                    script.get("http://search.twitter.com/search.json", {
                            jsonp: "callback",
                            query: {q: "#dojo"}
                        }).then(function(response){
                            //we're only interested in response.results, so strip it off and return it
                            return response.results;
                        });
                }
            });});
    

    Then I try to instantiate this class in main file (index.html):

    require(["dojo/on", "dojo/dom", "dojo/query",  "dojo/mouse", "dojo/domReady!"],
        function(on, dom, query, mouse) {
            var x = new TwitterManager();
            var results = x.get();
    });
    

    This code doesn’t work. But when I remove from class definition “request/script” module it works fine. I really need to use “script.get” method in this class. Of course all code might be put in index.html :) but I look for OOP approach in dojo 1.8.

    Thanks

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!