2009-06-25 2 views
0

Vous devez passer la variable args à la fonction anonyme, mais la fonction anonyme n'a pas besoin de la variable args, donc vous devez mémoriser quand Dojo a besoin de la variable args, mais la page d'aide de Dojo ne le dit pas! Alors, quand Dojo a-t-il besoin de la variable args?Quand Dojo a-t-il besoin de la variable args?

var init = function(){ 
var contentNode = dojo.byId("content"); 
dojo.xhrGet({ 
    url: "js/sample.txt", 
    handleAs: "text", 
    load: function(data,args){ 
    // fade out the node we're modifying 
    dojo.fadeOut({ 
     node: contentNode, 
     onEnd: function(){ 
     // set the data, fade it back in 
     contentNode.innerHTML = data; 
     dojo.fadeIn({ node: contentNode }).play();  
     } 
    }).play(); 
    }, 
    // if any error occurs, it goes here: 
    error: function(error,args){ 
    console.warn("error!",error); 
    } 
}); 
}; 
dojo.addOnLoad(init); 
+0

Vous devez être plus explicite. Collez du code. –

+0

J'ai collé du code. Je me demande si ça va marcher. –

Répondre

2

Pour clarifier: vous faites référence à la « args » argument que vous avez dans votre exemple de code qui fait partie des définitions de fonctions pour la « charge} et « callbacks erreur »:

Vous avez seulement besoin la variable args si vous avez besoin de l'utiliser Dojo lui-même n'en a pas besoin Normalement, vous ne devriez pas en avoir besoin Le premier argument devrait être le résultat que vous recherchez

Cependant, si vous avez besoin d'accéder au XMLHttpRequest brut objet, alors args.xhr va le contenir

De même, si vous voulez accéder à l'objet d'origine que vous avez passé à dojo.xhrGet (car vous y avez stocké un certain type d'état), vous pouvez l'obtenir à args.args (pour cette raison, je nomme normalement cet argument ioArgs, ce serait alors ioArgs.args).