- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用FOSjSrouting在我的 symfony2.7 项目中。
我有这个html.twig
View 代码:
<table>
<!--table header code ...etc... -->
<tbody>
{% for currentData in arrayData %}
<tr>
<td>{{ currentData.first_name}}</td>
<td>{{ currentData.last_name}}</td>
<td>{{ currentData.order}}</td>
<td>{{ currentData.category}}</td>
<td>{{ currentData.location}}</td>
<td>{{ currentData.price}}</td>
<td>
<a><button class="btn btn-info btn-xs showDetail" href="{{ path('detailsData', {'idData': currentData.idData }) }}">Show Detail</button></a> <!-- to open dialog tag through Ajax for each lines -->
<a href="{{ path('editData', {'idData': currentData.idData }) }}"><button class="btn btn-warning btn-xs">Edit</button></a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<!-- the dialog window to load detail content -->
<dialog id="window"></dialog>
<!-- javascript to open and close dialog window -->
<script>
(function() {
var dialog = document.getElementById('window');
var showButtons = document.getElementsByClassName('showDetail');
var showDialog = function() {
console.log(this);
dialog.show();
dialog.load(Routing.generate('detailsData', {'idData': currentData.idData }) }})
};
var i, len = showButtons.length;
for(i = 0; i < len; ++i) {
showButtons[i].onclick = showDialog;
}
document.getElementById('exit').onclick = function() {
dialog.close();
};
})();
</script>
如您所见,对于我想要显示的每个数据,我有一个详细信息按钮。此详细信息按钮引用另一个页面,该页面显示与我单击的当前数据相关的链接数据。
这是详细 View 的路由(尊重 FOSjSrouting 需求):
detailData:
pattern: /manage/order/detail/{idData}
defaults: { _controller: MySpaceMyBundle:MyController:detailData }
requirements:
methods: GET
options:
expose: true
目的是通过Ajax、jQuery、FOSjSrouting加载将 dialog
标记中的数据与 id="window"
链接到 currentData.idData
。
但是当我单击详细信息按钮时,出现此错误(在我的浏览器控制台中):
Uncaught ReferenceError: currentData is not defined
我知道我需要注意 {id}
路线参数。
如何使用我当前的脚本
(在我的html代码末尾)加载详细信息按钮引用的页面并通过ajax显示正确的链接数据?
编辑
我在 html.twig
View 中的 script 标记 末尾添加了这段 JavaScript 代码,它允许我在对话框标记中显示我想要的数据:
$('.showDetail').click(function() {
$.ajax({
'url': Routing.generate('detailsData', {'idData': $(this).val()}),
'cache' : false,
'success': function(loadDetail) {
$('#window').html(loadDetail);
}
});
});
出现的问题是我有一个延迟来显示对话框标记,并且就在在显示我想要的当前数据之前, 最后一个我点击之前显示几秒钟,然后我当前想要的数据稍后显示。
也许是缓存问题?
此外,第一次单击详细按钮时,对话框显示为空,然后(延迟)后,显示数据。
如何解决这些问题?
最佳答案
问题是,该变量没有在 javascript 中定义。您必须插入大括号才能让 twig 将 twig 变量转换为相应的值,如下所示:
{'idData': {{currentData.idData}} }
不幸的是,它也必须在 for 循环中 - 因此最好将值保存在数据属性中并使用 javascript 读取它。
您还可以使用已经填充的 href
属性,如下所示(按照您所说的方式使用 jQuery):
dialog.load($(this).attr('href'))
关于javascript - 使用 FOSJsRoutingBundle 和 Ajax 加载 html 内容时的延迟(路由参数 {id}),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31248460/
我正在尝试使用 FOSJsRoutingBundle 从 symfony 路由生成 url。我关注doc . 我将这些文件包含到我的 base.html.twig 中: {% block script
我很困惑,这是文档 https://github.com/FriendsOfSymfony/FOSJsRoutingBundle/blob/master/Resources/doc/index.md
var possibleRoute = "crm_finance_report"; var route = Routing.generate( possibleRoute ); 这会抛出一个错误,我
我安装了 FOSJsRouting 但我的路由需要 _locale 参数。我怎样才能在 JS 中做到这一点?有没有办法在 js 中获取语言环境? 在 twig 中,我可以执行 app.request.
我在 FOSJsRoutingBundle 方面遇到了一些麻烦在 Symfony4 中尝试从我的 Javascript 文件加载新模板时。 我按照 here 上的说明进行操作。 我要调用的路线如下:
错误: An exception has been thrown during the rendering of a template "You have requested a non-existe
有人可以帮助我了解如何使用 FOSJsRoutingBundle 生成 url 吗? 我有一条路线: /** * @Route("/ajax/send/mail/assist
我想使用Symfony的FOSJsRoutingBundle生成绝对URL。这基本上就是我正在做的事情: Routing.generate("route_name", {}, true); 它会产生一
我想从我的 JS 访问到 FOSRESTBundle Controller 的 API 路由。我正在使用 FOSJSRoutingBundle,但路线不可见(我收到“路线 xxx 不存在”错误。 这是
我在使用 FOSJSRoutingBundle 时遇到了一个非常奇怪的问题: 首先,这是我的配置:我正在使用 Symfony 2.0.23 和 JQuery,在带有 WAMP(Apache 2.4.2
我正在使用 FOSJsRoutingBundle 在 JavaScript 文件中生成 Symfony 2 路由 url。我已经按照文档安装了该 bundle (https://github.com/
我正在尝试在托管服务器上安装 Symfony 3.1.4 项目。它在我的本地机器上运行良好,但在外部机器上运行不佳。 对于 JS 路由,我使用 FOSJsRoutingBundle , 版本 ^1.6
我无法得到 FOSJsRoutingBundle 与 Symfony Flex、Webpack 和 AngularJS 一起工作。 我在 Symfony 3 中使用这个包和 AngularJS 很长时
我正在尝试设置 Typeahead + Bloodhound 以根据字段的建议执行搜索。该字段的HTML代码如下: 我使用 Symfony 的两个主要功能:一个用于返回所有产品并将其用作
我正在使用FOSjSrouting在我的 symfony2.7 项目中。 我有这个html.twig View 代码: {% for currentData in arrayData
我是一名优秀的程序员,十分优秀!