Chargement du modèle conditionnel (html) avec dojo AMD
-
12-12-2019 - |
Question
J'ai donc ce simple besoin :
require(['app/'+url,'dojo/text!content/'+url], function(module,template){
if(module.init){
module.init({
container: panel,
containerId: 'contentTabs_' + idOp,
template: template
});
}
});
Mais le modèle n’est peut-être pas là (parfois c’est le cas).Donc, quoi qu'il arrive, j'aimerais que mon rappel require soit exécuté.
Quelle est la manière AMD de procéder ?
Merci les gars.
La solution
À la place d'utiliser dojo/text!
, écrivez votre propre plugin :
require(['foo/maybe!'+url], function(maybeTemplate) {
if (maybeTemplate === undefined) {
// it's there
} else {
// it's not there
}
}
foo/maybe
doit se résoudre à un objet avec un load : function (id, require, callback)
membre.
load( id, // the string to the right of the ! require, // AMD require; usually a context-sensitive require bound to the module making the plugin request callback // the function the plugin should call with the return value once it is done ) -> undefined
Vous pouvez utiliser un appel XHR pour récupérer la ressource et résoudre undefined
sur une erreur 404.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow