Oppure

Loading
22/04/15 19:43
giannino1995
Ciao a tutti,
Da un testo di javascript che sto leggendo ho trovato questi codici:
define(['ch04/amd1', 'ch04/amd2'],
function myModule(amd1, amd2) {
var testResults = {
test1: amd1.test(),
test2: amd2.test()
},
// Define a public API for your module:
api = {
testResults: function () {
return testResults;
}
};
return api;
});

require(['ch04-amd'], function (amd) {
var results = amd.testResults();
test('AMD with Require.js', function () {
equal(results.test1, true,
'First dependency loaded correctly.');
equal(results.test2, true,
'Second dependency loaded correctly.');
});
});

Il risultato dovrebbe essere questo:
First dependency loaded correctly.
Second dependency loaded correctly.
ma l'autore è molto frettoloso e dimentica di scrivere sul testo tutto quello che serve per vedere lo script funzionare. Frettoloso o da tutto quanto per scontato, io questo non lo so però per me non è assolutamente scontato.
Per vedere funzionare questo script ho implementato require.js e ho scritto gli altri file mancanti ma il file main.js proposto dal testo non sembra funzionare. Il test() di qunit in pratica non viene eseguito e results.test1 risulta essere undefined. Riporto qui di seguito il mio codice:
script_libro_eric_elliott.php
<!DOCTYPE html>
<html>
    <head>
        <title>Utilizzo della libreria Require.js</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <!--Prima viene chiamato require.js e poi configurazione.js-->
        <script data-main="javascript/configurazione.js" 
                src="javascript/librerie/require.js">
        </script>
    </head>
    <body>
        <section>
            <h1 id="qunit-header">QUnit Test Suite</h1>
            <h2 id="qunit-banner"></h2>
            <div id="qunit-testrunner-toolbar"></div>
            <h2 id="qunit-userAgent"></h2>
            <ol id="qunit-tests"></ol>
        </section>
        <div>Utilizzo della libreria Require.js</div>
        <div id="contenitore"></div>
    </body>
</html>

javascript\moduli\script_libro.js
define(['javascript/moduli/amd1.js', 'javascript/moduli/amd2.js'], function myModule(amd1, amd2) {
    var testResults = {
        test1: amd1.test(),
        test2: amd2.test()
    },
    api = {
        testResults: function () {
            return testResults;
        }
    };
    return api;
});

javascript\moduli\main.js (quello che da problemi)
require(['javascript/moduli/script_libro.js'], function (amd) {
    var results = amd.testResults;
    test('AMD with Require.js', function () {
        equal(results.test1, true,
                console.log('First dependency loaded correctly.'));
        equal(results.test2, true,
                console.log('Second dependency loaded correctly.'));
    });
});

javascript\configurazione.js
/* global require */
require.config({
    baseUrl: 'javascript/librerie',
    urlArgs: "bust=" + (new Date()).getTime(),
    paths: {
        CartellaModuli: '../moduli'
    },
    shim: {
        script_libro: {
            deps: ['qunit', 'jquery']
        }
    }
});
require(['CartellaModuli/main']);

javascript\moduli\amd1.js
define("javascript/moduli/amd1.js", ["jquery", "qunit"], function () {
    var test = {
        test: console.log("Script amd1.js funzionante correttamente!")
    },
    api = {
        test: function () {
            return test;
        }
    };
    return api;
});

javascript\moduli\amd2.js
define("javascript/moduli/amd2.js", ["jquery", "qunit"], function () {
    var test = {
        test: console.log("Script amd2.js funzionante correttamente!")
    },
    api = {
        test: function () {
            return test;
        }
    };
    return api;
});

Ho già provato centinaia di soluzioni con la speranza di leggere in console le seguenti stringhe:

First dependency loaded correctly.
Second dependency loaded correctly.

ma non c'è stato verso, ora sono divorato dal nervoso e deluso.

Ragazzi c'è qualcuno che potrebbe gentilmente aiutarmi?
Ultima modifica effettuata da giannino1995 22/04/15 20:24
aaa
07/05/15 18:55
mikiprogrammer
Mi dispiace, ma non me ne intendo di JavaScript
aaa