jquery-select2 - 重定向到另一个控制器函数会导致前端错误:TypeError: $(...).select2 is not a function
问题描述
我有一个带有select2
. 在那个页面上是<a href>
指向不同的控制器动作。
调用这些操作后,用户将再次被重定向到原始页面。
但在重定向回列表后:
function lockUser() {
// after locking, return to the list:
return $this->redirectToRoute('user_list');
}
在该用户列表页面上,前端发生错误:
未捕获的类型错误:$().select2 不是函数
一些事实(可能有帮助):
- select2.js 实际上在 dom 中,实现时没有 404。
- 它呈现完全相同的视图,就好像我
user_list
直接调用了该函数一样。 - 即使所有内容都已加载,我也无法在浏览器控制台中使用“select2”。
- 可以使用其他 javascript 文件/函数
- 出现在 Firefox 和 Chrome 中(可能是每个浏览器)
这是一个绝对奇怪的错误。
在控制器端重定向之后,Firefox 在控制台中打印一些其他消息:
Cookie“sf_redirect”将来会被拒绝
cookie“sf_redirect”已被拒绝,因为它已过期
未捕获的类型错误:$(...).select2 不是函数
在此之后,我仍然无法在控制台中使用 select2,尽管它甚至已包含在 dom 中!
任何人都可以帮助我或给我任何提示吗?每个小费都可能有用。谢谢!
解决方案
使用属性加载脚本async
修复错误:
<script "/js/select2.js" async></script>
推荐阅读
- html - 与 JAWS 一起使用的带有复选框的菜单的正确 HTML 和 ARIA 结构是什么?
- mysql - MYSQL - 自动提交的插入是否被视为单步或多步过程?
- php - map 方法什么时候在 laravel 服务提供者中启动?
- angular - 角度 - 从 api 获取图像
- mongodb - Spring Boot 和 Mongo - 如何通过嵌套属性进行查询
- node.js - 如何将某个角色的所有成员昵称中的角色换掉?
- thingsboard - [数据转换器]之后可以应用[规则链]吗?
- raspberry-pi - 我可以将 ESP8266 与 edgeSDK 一起使用吗?
- sql - SQL 什么是 &
- python-multiprocessing - 我如何使用 Pool 而不是 Process & Pipe