Constellation Knowledge Network - Preguntas y respuestas sobre Bagua - Cómo introducir archivos de paquetes JS en Yii2.0

Cómo introducir archivos de paquetes JS en Yii2.0

El objeto yii\web\View puede registrar scripts. Hay dos métodos especiales: ¿para el script en línea RegisterJs()? y script externo RegisterJsFile(). Los scripts en línea se pueden utilizar para la configuración y la generación de código dinámico.

Primero, el script en línea RegisterJs()

se usa de la siguiente manera:

//Código js registrado internamente $ JSString = " $(function() { alert(123); }); "$this->registerJs($jsString, View::POS_END)" o $this->registerJs("var options = ".json_encode($options)". :POS_END, 'my-option');

Descripción:

El primer elemento es el código js que queremos escribir en el archivo de vista.

El segundo elemento es donde decidimos insertar este código en el archivo de vista. Los parámetros específicos son los siguientes:

Ver::POS_HEAD? Para uso en la cabeza.

¿Ver::POS_BEGIN? ¿Justo después de abrirlo? <body>.

¿Ver::POS_END? ¿Justo antes de cerrar? </cuerpo>.

¿Ver::POS_READY? para ejecutar código en un documento? ¿Estás listo? evento. ¿Esto se registrará? jQuery? automáticamente.

¿Ver::POS_LOAD? para ejecutar código en un documento? ¿carga? evento. ¿Esto se registrará? jQuery? automáticamente.

El tercer elemento es el Id de este código, que es único. Si hay ID reemplaza o reemplaza al anterior con el mismo nombre. Si no se escribe el último elemento, el código js en sí es el ID y el último elemento se puede ignorar.

$Esto se refiere al objeto yii\web\View, usado para administrar y presentar vistas.

Existe esa manera de escribir.

<? PHP $this->beginBlock("aaa ")? & gt

$(function () {?//Escribe tu código js aquí});& lt? PHP $this->endBlock()? & gt

& lt? PHP $this->register js($this->blocks["aaa"],\yii\web\View::POS_END);? & gt

Los bloques de datos pueden especificar que el contenido de la vista se muestre en un lugar y en otro lugar, generalmente usado con diseños.

Por ejemplo, puede definir un bloque de datos en la vista de contenido para mostrarlo en el diseño.

Llame a yii\base\View::beginBlock() y yii\base\View::endBlock() para definir bloques de datos.

Utilice $view->Blocks[$blockID] para acceder a bloques de datos.

Donde $blockID es el ID de identificación único especificado al definir el bloque de datos.

Se puede ver que la escritura interna es bastante flexible ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

2.

<? Lenguaje de programación del lado del servidor (abreviatura de Preprocesador de hipertexto profesional)

Usar backend\assets\AppAsset

Usar yii\web\View

app active::register ( $this); //Introduce el archivo js $this->registrar jsfile(Yii::$app->Request->baseUrl.js/mytest_js.js',['depends' =>back end \ activos \ app active::class name(), " position " = & gt$ this::POS _ END]

Descripción: Importar archivos js externos.

¿El primer parámetro es la ruta absoluta del archivo? yii::$ aplicación->Solicitud->BaseUrl más archivo js?

El segundo elemento es la cinta. ¿Depende de quién? Aquí depende. atrás \ activos \ aplicación activo::nombre de clase() objeto.

El tercer elemento es la ubicación del archivo importado, ¿POS_END? Se describe en

Pero generalmente no se usa para importar archivos externos, porque cada vez que importas un archivo, debes especificar de quién depende, lo cual es relativamente complicado. Normalmente, utilizamos paquetes de activos de gestión de paquetes para registrarnos.

Primero que nada: ¿en este archivo? Volver a \Assets\AppAsset.php muestra que hemos introducido dos métodos estáticos.

La versión completa de la clase appasset es la siguiente:

Namespace backend\assets;?

¿Usar yii\web\AssetBundle?

¿La clase AppAsset extiende AssetBundle? { ?

público $basePath = '@webroot?

público $baseUrl = '@web?

//¿CSS global?

público $css = [?

css/animate.css ',?

'css/style.min.css',?

];

//JS global?

público $js = [?

js/jquery-2.1.1.js '?

];

//¿Dependencia?

público $depende = [?

' yii\web\YiiAsset ',?

yii\bootstrap\BootstrapAsset ',?

];?

//Definir el método de carga de JS bajo demanda. ¿Prestar atención al orden de carga final?

Función estática pública addScript($view, $jsfile) {?

$ view-> RegisterJsFile($jsfile, [AppAsset::className(), 'depende' = & gtback end \ activos \ app active ']);?

} ?

?

//Definir el método de carga CSS bajo demanda. ¿Prestar atención al orden de carga final?

Función estática pública addCss($view, $cssfile) {?

$ view-> registrarCssFile($cssfile, [AppAsset::className(), ' depende ' = >back end \ activos \ activo de la aplicación ']);?

} ?

}

añadirScript()? y el método addCss() es la clave para nuestro registro en el archivo de visualización. ¿No necesitamos usarlos usando los siguientes métodos? $this->registerJsFile? Registrado.

<? El backend de phpuse \assets\AppAsset usa yii\web\View

app active::register($this);

//archivo css appasset::addcss ($this, yii: :$app->Solicitud->baseUrl."/CSS/blog.CSS");

AppAsset::addScript($this, Yii::$app->Solicitud-& gt;baseUrl ./js/waibu_js.js');

上篇: Soñar con familiares que vienen a casa de mi suegro. 下篇: ¿Qué empresa tiene alguna información?
Artículos populares