2012-04-18 3 views
7

Viene visualizzato questo errore: Error: defineAlreadyDefined, che si verifica solo con dojo.Errore: defineAlreadyDefined

index.php

<script data-main="app" src="require.js"></script> 

app.js

require({ 
    paths : { 
     dojo : 'http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo' 
    } 
}); 

require([ 'dojo' ], function() { 
    //something 
}); 

Ho trovato una domanda simile, ma non mi ha aiutato:

When dojo.js loaded via ajax multiple times get Error: defineAlreadyDefined

EDIT: Ho cercato e penso che il modo in cui sto cercando di usare requiJS e Dojo sia sbagliato.

Qualche idea? grazie

risposta

3

Per poter utilizzare un caricatore straniera w/Dojo è necessario ignorare il file dojo/dojo.js, che definisce il caricatore AMD. Il tuo richiedere config dovrebbe avere qualcosa di simile:

require({ 
    packages: [ 
     { 
      name: 'dojo', 
      location: 'dojo', 
      main:'dojo/main' 
     } 
    ] 
}); 

Tuttavia, il caricatore dojo è altrettanto bravo a caricare i plugin jQuery come requireJS e viene fornito con un paio di plugin aggiuntivi, come dojo/has. Ci penserei seriamente solo usando il caricatore.

0

Non sono sicuro di ciò che si vuole realizzare qui, ma Dojo implements requireJS. Pertanto non è necessario requireJS.

Cosa fareste, per il normale uso della libreria Dojo, è:

//call dojo script 
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.7.2/dojo/dojo.js"></script> 
<script> 
    var dojoConfig = (function(){ 
     return { 
      async: true, 
      //in case you wanted to use your own library 
      paths: [{ 
       name: "location/library"//your library path 
      }] 
     }; 
    })();  

    require([ 
     "dojo/parser", 
     "name/something",//calling 'somethong' from library 
     "dojo/domReady!" 
    ], function(parser, something /*your library obj*/){ 
     //your logic 
     parser.parse(); 
     something.do(); 
    }); 
}); 
</script> 
+0

il motivo per cui preferisco requireJS è perché ho un sacco di plugin jQuery e anche dojo. – user947462