我想在TYPO3后端加载其他JS。我正在使用the official documentation中的requireJS。
在ext_localconf.php中,我试图像这样加载我的JS:
if (TYPO3_MODE=="BE" ) {
$pageRenderer = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Page\PageRenderer::class);
$pageRenderer->loadRequireJsModule('TYPO3/CMS/ExtensionName/EventEndDateValidator');
}
在我的浏览器控制台中,出现如下错误:
错误:的脚本错误 “ TYPO3 / CMS / ExtensionName / EventEndDateValidator” http://requirejs.org/docs/errors.html#scripterror
和
with源的加载失败 “ http://localhost/typo3/TYPO3/CMS/ExtensionName/EventEndDateValidator.js?bust=6b9250465c29da98dea71ea9e447e7db2d3ccea3”。 index.php:1
因此,名称空间无法解析。 The docs和@DAM说,将JS文件放在EXT:extension_name/Resources/Public/JavaScript
目录中就足够了。
我的JS文件是这样的:
define(['jquery'], function($) {
var EventEndDateValidator = {
sayings: [
'The quick brown fox jumps over the lazy dog',
'Bright vixens jump; dozy fowl quack'
]
};
EventEndDateValidator.say = function() {
alert(EventEndDateValidator.sayings[Math.floor(Math.random() * EventEndDateValidator.sayings.length)]);
};
$(document).ready(function() {
// Initialize the view
EventEndDateValidator.say();
});
});
我想念什么吗?
答案 0 :(得分:1)
为澄清您写的一件事,您必须将ExtensionName
替换为您自己的扩展名-不知道是否这样做:
假设您的扩展名具有密钥wonderful_extension
,则名称通常为WonderfulExtension
。
然后在文件ext_localconf.php中将其编写为:
if (TYPO3_MODE=="BE" ) {
$pageRenderer = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Page\PageRenderer::class);
$pageRenderer->loadRequireJsModule('TYPO3/CMS/WonderfulExtension/EventEndDateValidator');
}
根据您当前使用的代码,扩展密钥必须为extension_name
,名称为ExtensionName
,实际上使用这些字符串可能并不合理。在文档中,必须将它们视为要用您自己的值替换的变量。