Для того, чтобы разрабатывать javascript модульно, Prologue-Framework использует систему jS модулей.
Создание и подключение модуля
JS::loadModule('app/myModule');
При вызове этой функции, создастся файл /Project/static/js/app/myModule.js со следующим содержимым:
/**
* @author PrologueFramework
* @description module created 2017-07-13 22:52:51
* @constructor
* @this myModule
* @param prData
*/
var myModule = function (prData) {
function index() {
sampleModule();
}
function sampleModule() {
sampleModule__sampleClickHandler();
}
function sampleModule__sampleClickHandler() {
$(document).on('click', '.js_buttonGetSampleData', function () {
sampleModule__sampleClickHandler_sampleAjaxHandler($(this));
});
}
function sampleModule__sampleClickHandler_sampleAjaxHandler(obj) {
$.ajax({
url: '',
type: 'get',
dataType: 'json',
data: {
action: 'getData',
id: obj.data('id')
},
success: function (jsonData) {
}
});
}
index();
};
В файле описан модуль с примером обработки простейших событий. Стоит отметить то, что именно в такой структуре рекомендуется разрабатывать js модули.
Передача данных в js модуль
JS::loadModule('app/myModule',
[
'text' => 'Hello, Prologue!',
]
);
Вторым аргументом передается массив в котором ключами являются имена свойств js-объекта prData с соответствующими значениями.
В данном примере в js модуле app/myModule станет доступно следующие свойство prData.text со значением: Hello, Prologue!