繁体   English   中英

从javaScript设置树枝变量

[英]Set twig variable from javaScript

我需要生成url才能加载html元素中的某些内容。

$('#editSchool').click(function () {
            var id = $(this).attr('data-id');

当我尝试为id参数插入id值时,问题就从这里开始

            $('#educationDialog').load("{{ path('_education_edit', {'id': id}) }}", function () {
                $('.closeDialog, #person_education_form_cancel').click(function () {
                    $('#addSchool').trigger('click');
                });
            });
        });

如果可能的话,您有解决方案吗?

您可以使用FOSJSRouting捆绑包:

http://symfony.com/doc/current/bundles/FOSJsRoutingBundle/usage.html

使用此捆绑包,您可以使用javascript生成路线

呈现页面时将解析树枝,因此在路由声明中设置页面加载时的id变量。

最简单的解决方法是将路由更改为接受ID的可为空参数,然后将ID添加到JavaScript中的路由。 另外,要在JavaScript中使用,您将需要使用url树枝函数,因为它提供了绝对URL,路径提供了相对URL。 参考: symfony2.3中的“ url”和“ path”有什么区别

示例routing.yml;

my_route:
    path:    /foo/bar/{id}
    defaults:   { _controller: AppBundle:Foo:bar, id: null }

然后在你的树枝上;

<script>
var url = '{{ url('my_route') }}'+'/';
var id = $(this).attr('data-id'); 
$('#educationDialog').load(url+id, function () {
    // ...
});
</srcipt>

问题很简单。 除了传递data-id属性,还可以传递data-url。

<span id="editSchool" data-url="{{ path('_education_edit', {'id': id}) }}">  
     Edit School
</>

$('#editSchool').click(function () {
        var url = $(this).data('url');

        $('#educationDialog').load(url, function () {
            $('.closeDialog, #person_education_form_cancel').click(function () {
                $('#addSchool').trigger('click');
            });
        });
    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM