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
    Animated 3D Flipping Menu with CSS

    CSS animations aren't just for basic fades or sliding elements anymore -- CSS animations are capable of much more.  I've showed you how you can create an exploding logo (applied with JavaScript, but all animation is CSS), an animated Photo Stack, a sweet...

  • By
    Responsive Images: The Ultimate Guide

    Chances are that any Web designers using our Ghostlab browser testing app, which allows seamless testing across all devices simultaneously, will have worked with responsive design in some shape or form. And as today's websites and devices become ever more varied, a plethora of responsive images...

Incredible Demos

  • By
    CSS content and attr

    CSS is becoming more and more powerful but in the sense that it allows us to do the little things easily.  There have been larger features added like transitions, animations, and transforms, but one feature that goes under the radar is generated content.  You saw a...

  • By
    Unicode CSS Classes

    CSS class name structure and consistency is really important; some developers camelcase classnames, others use dashes, and others use underscores.  One thing I've learned when toying around by HTML and CSS class names is that you can actually use unicode symbols and icons as classnames.

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!