alhimik1986/yii2_js_view_module

该模块允许您将最常用的JavaScript代码以指定预设的形式插入到您的页面中。

安装: 521

依赖项: 1

建议者: 0

安全: 0

星级: 0

关注者: 2

分支: 0

开放问题: 0

语言:JavaScript

类型:模块

1.2 2018-08-11 20:30 UTC

This package is auto-updated.

Last update: 2024-08-29 05:00:08 UTC


README

这是一个为yii2-crud-module设计的辅助模块。允许您通过指定的参数加载JavaScript插件。从行为上看,它类似于小部件,但它与小部件的不同之处在于,它不会输出HTML代码,而只会加载带有指定参数的JavaScript文件和JavaScript视图。

让我们以日期选择器datepicker(jQuery-ui模块)为例。通过小部件加载它需要更多的代码,如果有很多这样的小部件(例如,相同类型的日历或类似的小部件),则可能会影响性能。因此,我们想到为日历设置一个类(例如 .ui-datepicker)并使用命令 $('.ui-datepicker').datepicker(); 现在我们想到的是,我们不想为此使用小部件,而想在小部件中完成这项工作,但这里又出现了问题:视图需要放置在一个公共位置,并从框架的不同模块中调用它,指定相应的参数,例如,选择器 '.ui-datepicker' 和日历参数 { dateFormat: 'dd-mm-yy' }。因此,这就是为什么需要yii2-js-view-module的原因。

创建自定义js_view的示例

在文件components/JSPlugins.php中,有调用js视图的示例,被注释包围。其中大多数已不存在,因为它们已用于我过去的某个项目,但我保留了它们,因为它们是js视图应该如何调用的一个好例子。以下是一个例子

Yii::$app->view->registerJs(alhimik1986\yii2_js_view_module\components\JSPlugins::includePlugins([
	'formatter' => [
		[
			'selector' => '.date-formatter',
			'options' => [
				'pattern' => '{{D9}}.{{M9}}.{{9999}}',
			],
		],
		[
			'selector' => '.credit-card-formatter',
			'options' => [
				'pattern' => '{{9999}}-{{9999}}-{{9999}}-{{9999}}',
			],
		]
	],
	'ajaxTable' => [                                        // Подключить вспомогательные скрипты для поиска в ajax-таблице
		[
			'tbl_selector' => '#ajax-table',                             // Селектор ajax-таблицы для поиска
			'search_url' => \yii\helpers\Url::to(['search']),            // url-адрес, куда отправлять искомые данные
			'search_request_type' => 'post',                             // Тип запроса при поиске в таблице
			'search_on_change_selector' => '.search-on-change',          // Селектор элементов, при изменении или нажатии клавиш которых осуществлять поиск
			'search_on_change_dateSelector' => '.from-date, .to-date',   // Селектор элементов, при изменении которых осуществлять поиск
			'tooltip_selector' => '',                                    // Селектор для всплывающей подсказки при обновлении ajax-таблицы
			'loading_img' => '',                                         // url-адрес индикатора загрузки
			'error_selector' = '#errors',                                // Место, куда будут выводиться нестандартные ошибки валидации
			'ajaxDataCallBack' => 'js:function(data){return data;}',     // Пост-обработка данных для поиска перед отправкой ajax-запроса (например, чтобы втиснуть в поиск диапазон дат from_date и to_date)
			'afterSuccessCallBack' => 'js:function(data){}',             // Дополнительные операции при успешном запросе (в поиске)
		],
	],
]));

这里数组的键:“formatter”和“ajaxTable”是视图文件的名称,它们存储在views/jsPlugins文件夹中。数组的值是传递给相应视图的参数。进入views/jsPlugins文件夹,视图的名称具有前缀“_”(下划线),表明它是一个部分视图。一个很好的简单示例可以在视图 _formatter.php 中看到,参数(PARAMETERS)传递给视图存储在变量 "$plugin_params" 中。

目前有一个缺点:将自定义视图存储在“vendor”文件夹中并不完全正确,因此该模块将是yii2-crud-module的辅助模块。

安装

使用composer下载。在应用程序的文件夹中的composer.json文件中添加一行

    "require": {
		"alhimik1986/yii2_js_view_module": "^1.0"
    },

或者在命令行中输入

$ composer require alhimik1986/yii2_js_view_module