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.

Était-ce utile?

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
scroll top