如何让TYJ3 BE正确解析NameJS命名空间?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让TYJ3 BE正确解析NameJS命名空间?相关的知识,希望对你有一定的参考价值。
我想在TYPO3后端加载额外的JS。我在the official documentation中使用requireJS。
在ext_localconf.php中我试图像这样加载我的JS:
if (TYPO3_MODE=="BE" ) {
$pageRenderer = TYPO3CMSCoreUtilityGeneralUtility::makeInstance(TYPO3CMSCorePagePageRenderer::class);
$pageRenderer->loadRequireJsModule('TYPO3/CMS/ExtensionName/EventEndDateValidator');
}
在我的浏览器控制台中,我收到如下错误:
错误:“TYPO3 / CMS / ExtensionName / EventEndDateValidator”http://requirejs.org/docs/errors.html#scripterror的脚本错误
和
加载源“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();
});
});
我错过了什么吗?
为了澄清你写的一件事,你要用你自己的扩展名替换ExtensionName
- 不确定你是否这样做:
假设你的扩展名有密钥wonderful_extension
,那么这个名字通常是WonderfulExtension
。
然后在文件ext_localconf.php中你要这样写:
if (TYPO3_MODE=="BE" ) {
$pageRenderer = TYPO3CMSCoreUtilityGeneralUtility::makeInstance(TYPO3CMSCorePagePageRenderer::class);
$pageRenderer->loadRequireJsModule('TYPO3/CMS/WonderfulExtension/EventEndDateValidator');
}
根据您目前使用的代码,扩展键必须是extension_name
,名称为ExtensionName
,可能真的使用这些字符串是不合理的。在文档中,它们将被视为要用您自己的值替换的变量。
以上是关于如何让TYJ3 BE正确解析NameJS命名空间?的主要内容,如果未能解决你的问题,请参考以下文章