我正在开发一个主要基于Symfony2和Twig-Templates的项目。我现在想要编写一个基于AngularJS的新包。也就是说,大多数网站的菜单和导航仍然在php / Twig中,但是用户列表应该用AngularJS编写。 我有一个AngularJS前端,运行的文件结构如下所示:
现在,我只想在Symfony2中的给定路径下显示它。 有没有办法说,我不希望Symfony中的任何Controller用于前端 - 只是静态传送?
此类申请的一般合理方法是什么? 我发现的大多数教程都假设,整个网站都是用Angular编写的,而不仅仅是一个包。
感谢您的任何提示!
答案 0 :(得分:3)
我之前使用的是asoc/assetic-angular-js-bundle
(GitHub),当与资产过滤器配置一起使用时,意味着所有部分和脚本都被合并到一个文件中。
他们的github页面说明在你的树枝模板中使用以下内容..
{% javascripts filter="angular"
'@BundleName/Resources/views/aTemplate.html.ng'
'@BundleName/Resources/views/fooTemplate.html.ng'
'@BundleName/Resources/views/moarTemplates/*.html.ng'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
但是如果你使用..
// app/config/config.yml
assetic:
filters:
angular:
apply_to: "\.ng$"
resource: %kernel.root_dir%/../vendor/asoc/assetic-angular-js-bundle
/Asoc/AsseticAngularJsBundle/Resources/config/assetic.xml
// This is all one line
// Not sure why this was needed, I vaguely remember
// assetic not being able to find to config
然后你可以像你这样在你的twig javascripts部分调用你的部分..
{% javascripts
'@BundleName/Resources/views/angular-app.js'
'@BundleName/Resources/views/angular-controllers.js'
'@BundleName/Resources/views/some-other-stuff.js'
'@BundleName/Resources/views/aTemplate.html.ng'
'@BundleName/Resources/views/fooTemplate.html.ng'
'@BundleName/Resources/views/moarTemplates/*.html.ng'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
然后我猜你可以在你希望它显示的一个树枝视图中包含上面的内容,或者你可以将它包含在你的所有模板中(取决于你想要如何处理脚本缓存以及什么不是)和只需使用常规的ng-view
UserListController
类型标记来调用它。
很抱歉,如果这与您提出的要求无关。在我开始写这篇文章时它非常有意义,但是我如何看待它,看起来我刚刚完全切断了。