I just started out with RequireJS, but i'm stuck at the part where i want to use one js file which has two defines() in it, like this:
Filename: test.js
define('test1', ['jquery'], function() {
    return {
        method1 : function () {
            console.log("test1 - method 1");
        },
        method2 : function () {
            console.log("test1 - method 2");
        }
    }
});
define('test2', ['jquery'], function() {
    return {
        method1 : function () {
            console.log("test2 - method 1");
        },
        method2 : function () {
            console.log("test2 - method 2");
        }
    }
});
I also have a bootstrap,js file which is automatically loaded by the RequireJS framework:
require(['jquery', 'test', 'test2'], function ( $, t1, t2 ) {
    console.log(t1);
});
It does find the 2nd param, the 'test' file. Only, it returns a 'null'. It can't find 'test2' because it tries to look for a file called 'test2.js'. Actually i'd like to do something like:
require(['jquery', 'test.test1', 'test.test2'], function ( $, t1, t2 ) {
    console.log(t1);
});
But in anyway, i'd like to get a handler to both the objects. What am i doing wrong??
You cannot export two different modules like this. If you want to keep them as "submodules" of 'test', the right way would be to do:
define('test', ['jquery'], function() {
    var exports = {};
    exports.test1 = {
        method1 : function () {
            console.log("test1 - method 1");
        },
        method2 : function () {
            console.log("test1 - method 2");
        }
    };
    exports.test2 = {
        method1 : function () {
            console.log("test2 - method 1");
        },
        method2 : function () {
            console.log("test2 - method 2");
        }
    };
    return exports;
});
Then you can do:
require(['test'], function (test) {
    var test1 = test.test1;
});
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With