Symfony中子文件夹中的刺激控制器无法正常工作

4
早上好。我在使用Stimulus控制器和命名空间时遇到了问题,按照Stimulus文档中指定的命名约定进行操作。
如果我像这样使用我的控制器,则一切都按预期工作:
/controllers/gifts_controller.js data-controller="gifts"
但是,如果我以这种方式使用控制器,则什么都不起作用:
/controllers/frontend/gifts_controller.js data-controller="frontend--gifts" Stimulus文档指定子文件夹中的控制器名称约定必须像第二个示例那样,但它没有起作用。没有错误,就好像它不存在一样。
有任何想法吗?
编辑:抱歉,我写错了。

请在```引用之间发布代码。请参阅https://stackoverflow.com/help/how-to-ask。 - vincent PHILIPPE
1
代码在 `` `之间。我阅读了文档,如果我做错了什么,请原谅,但我认为这是正确的。 - Pablo Carballeda
我的意思是,请不要发布图像来说明您的问题!请勿发布代码、数据、错误消息等图像...https://stackoverflow.com/help/how-to-ask - vincent PHILIPPE
我自己从未使用过 Stimulus。是否有一个与 gifts-controller.js 相关的 Symfony GiftsController.php?在 Symfony 中,默认情况下,控制器需要位于 src/Controller 目录下。 - Cerad
1个回答

6
文件名中的后缀_controller.js是Stimulus用于检索目录结构中控制器的约定。应该不包含在data-controller属性中。
根据你分享的文档文章中所述:
Name your controller files [identifier]_controller.js, where [identifier] corresponds
to each controller’s data-controller identifier in your HTML.

双破折号(--)会替换命名空间结构中的任何正斜杠(/)。
对于您的情况,文件名为controllers/frontend/gifts_controller.js,标识符是frontend--gifts。 因此,在HTML元素的数据属性中,您应将控制器引用为data-controller="frontend--gifts"

你好!感谢您的回答。我正在按照您的方式进行操作,只是发现我没有正确地书写问题,并且我输入了 data-controller="frontend--gifts_controller.js",而实际上应该是 data-controller="frontend--gifts" - Pablo Carballeda

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接