我有一个使用SonataAdminBundle的标准Symfony项目。
我在视图trainer-edit.html.twig中的balise中有以下javascript:
$.ajax({
url: '{{ admin.generateObjectUrl('massEvents', object) }}',
data: datas,
type: 'post',
success: function (response) {
$('.sonata-ba-form form').removeAttr('data-original');
window.location.reload(true);
}
});
为了更好地划分代码,我决定创建一个文件trainer-edit.js并将我的javascript迁移到它中并使用以下方法在我的视图中引用它:
<script type="text/javascript" src="{{asset('assets/js/Admin/Trainer/trainer-edit.js') }}"></script>
问题是,代码的那一部分显然无法在.js文件中解析,因为它是树枝:
url: '{{ admin.generateObjectUrl('massEvents', object) }}'
所以我想知道两件事(我是symfony的新手):
先谢谢你们
你可以使用FOSJsRoutingBundle。这会将路由器暴露给您的js,可用于在您的javascript中访问您的symfony路由。
见:https://symfony.com/doc/master/bundles/FOSJsRoutingBundle/usage.html#router-service