Sono nuovo nel dojo e non riesco a capire perché questo sta accadendo
in dojo.html:
require(["dojo/query", "dojo/NodeList-dom", "dojo/domReady!", "a" ], function(query, a) {
query("#greeting").style("color", "red");
alert(a.sheep);
});
in a.js
define([], function() {
var a = {
"sheep": "blah",
}
return a;
});
Richiedere e caricare il modulo a va bene, ma quandoProvo ad avvisare a.sheep, mi sento indefinito. Nota: ho anche provato a dichiarare le pecore: "blah" e provare a cambiare le pecore in una funzione di avviso ea eseguire a.sheep, che ha funzionato.
risposte:
2 per risposta № 1il motivo per cui non puoi accedere a.sheep
è che c'è dojo/NodeList-dom
modulo in a
variabile. L'ordine degli elementi in define/require
la matrice è legata alla lista di argomenti nel successivo function
. Quindi dovresti scrivere:
require(["dojo/query", "a", "dojo/NodeList-dom", "dojo/domReady!"], function(query, a) {
})
Anche dal punto di vista pratico mi capita di formattare il mio codice in questo modo:
define([
"dojo/_base/declare",
"dojo/query",
"a",
"dojo/NodeList-dom",
"dojo/domReady!"
],
function(
declare
query,
a
){
return declare(null, {
constructor: function() {}
});
});
Ogni modulo sulla propria linea, oltre al raggruppamento logico dei moduli tramite linee vuote.