Estoy tratando de importar un archivo js como módulo de tipo en CakePHP 2.10.22. puedes hacer algo como esto
echo $this->Html->script('test', array('inline' => false, 'type' => 'module')); pero eso da como resultado que la etiqueta sea como <script type="text/javascript" type="module">
yo tambien cansada
echo $this->Html->tag( 'script', null, array( 'type' => 'module', 'src' => '/test/js/objects/test.js' ) );Pero no lo pone dentro de la etiqueta html del encabezado.
¿Hay alguna manera de agregar o crear un asistente personalizado que lo agregue a la cabeza?
Al usar el asistente de HTML, una opción sería personalizar la plantilla que se usa para generar la etiqueta de secuencia de comandos, es decir, javascriptlink , que de forma predeterminada tiene el atributo de type codificado :
// in app/Config/html_tags.php $config = array( 'tags' => array( 'javascriptlink' => '<script src="%s"%s></script>', // ... ), ); // in your view layout or template $this->Html->loadConfig('html_tags'); // or in your (App)Controller public $helpers = array( 'Html' => array( 'configFile' => 'html_tags', ), ); Esto requeriría que siempre especifique un type para sus etiquetas de script en caso de que sea necesario.
Otra opción sería generar etiquetas personalizadas como se muestra en su pregunta, y usar el método append() de la vista para agregarlo al bloque de vista respectivo que se muestra en su diseño, de forma predeterminada, ese sería el bloque llamado script :
$scriptTag = $this->Html->tag(/* ... */); $this->append('script', $scriptTag);Esto ciertamente podría implementarse en un asistente HTML personalizado/extendido si lo desea.
Ver también