J'utilise le soutien Dojo AjaxDojo - dojo.byId() sur une réponse ajax
function handleSubmit(evt, targetUrl, submitForm, updateDiv) {
dojo.stopEvent(evt);
dojo.xhrPost({
url: targetUrl,
handleAs: "text",
load: function(response){
updateDiv.innerHTML = response;
wireEvents();
return response;
},
form: submitForm,
error: function(response, ioArgs) {
console.error("HTTP status code: ", ioArgs.xhr.status);
return response;
}
});
}
La réponse du serveur contient plus de données que ce que je dois. Je voudrais être en mesure de remplacer cette
load: function(response){
updateDiv.innerHTML = response;
wireEvents();
return response;
},
dans quelque chose comme
load: function(response){
updateDiv.innerHTML = dojo.byId('elemToExtract', response);
wireEvents();
return response;
},
J'ai de mettre à jour ma page avec une partie de la réponse ajax. J'ai besoin de la possibilité d'utiliser le sélecteur dojo.byId sur la réponse (en utilisant la réponse comme une racine de contexte ou quelque chose comme je l'ai trouvé dans jQuery).
Savez-vous comment puis-je y parvenir?
Merci
Je vais avoir un regard sur le api doc. On dirait que cette fonction est utilisée dans dojo 1.3.2. J'utilise 1.2.x pour le moment. Je vais jeter un oeil si je peux trouver la fonction relative dans ce vers – mickthompson
Je suis désolé, j'utilise la version 1.3 et je n'ai pas remarqué que créer n'était pas disponible dans les versions précédentes. Quoi qu'il en soit, vous pouvez appliquer la même technique en utilisant l'API DOM de niveau inférieur: vous créez l'élément avec document.createElement ('div') et définissez manuellement la propriété innerHTML, vous devriez alors pouvoir utiliser dojo.byId. Le point convertit le texte brut en html avec DOM. –
Je pense que dojo.create fait plus que simplement créer un élément avec du contenu. Si vous êtes en mesure de passer son résultat en tant que 2ème élémen de byId, dojo.create devrait créer un document que dojo.byId ('elemToExtract', tempDiv) est capable d'analyser. l'API dit que ça doit être un document. Je peux créer un tempDocument avec un élément div avec contenu (innerHTML) = réponse. Le problème est que l'élément que j'ajoute ne contiendra que du texte et qu'il n'a pas de structure analysable par dojo.byId – mickthompson