2012-04-18 23 views
7

Aparece este error: Error: defineAlreadyDefined, que solo se produce con dojo.Error: 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 
}); 

me encontré con una pregunta similar, pero no me ayudaron:

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

EDITAR: He buscado y creo que la forma en que estoy tratando de usar requiJS y Dojo es incorrecta. http://dojotoolkit.org/features/1.6/async-modules

¿Alguna idea? gracias

Respuesta

3

Para utilizar un cargador exterior w/Dojo tendrá que saltarse el archivo dojo/dojo.js, que define el cargador AMD. Su requerir configuración debe tener algo como:

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

Sin embargo, el cargador dojo es igual de bueno en la carga de plugins jQuery como RequireJS y viene con un par de plugins adicionales, como dojo/has. Consideraría seriamente usar su cargador.

0

No estoy seguro de lo que quiere lograr aquí, pero Dojo implements requireJS. Por lo tanto, no necesita requireJS.

Lo que haría, por el uso normal de la biblioteca de Dojo, es:

//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

la razón por la que prefiero requireJS es porque tengo muchos plugins jquery y también dojo. – user947462