繁体   English   中英

Symfony2-与AngularJS捆绑

[英]Symfony2 - Bundle with AngularJS

我正在研究一个主要基于Symfony2和Twig-Templates的项目。 我现在确实想写一个基于AngularJS的新包。 也就是说,大多数站点的菜单和导航仍位于php / Twig中,但用户列表应使用AngularJS编写。 我让AngularJS前端启动并运行了一个看起来像这样的文件结构:

  • 应用/
    • js /
      • app.js
    • 部分/
      • users.html
      • user_detail.html
    • index.html
  • bower_components /
  • ...

现在,我只想在Symfony2中的给定路由下显示它。 有没有办法说我不希望Symfony中的任何Controller用于前端-只是静态交付?

对于这样的应用程序,一般合理的方法是什么? 我发现的大多数教程都假设整个站点都是用Angular编写的,而不仅仅是一个捆绑包。

谢谢您的提示!

我以前使用过asoc/assetic-angular-js-bundleGitHub ),当与资产式过滤器配置一起使用时,意味着所有的部分代码和脚本都被合并到一个文件中。

他们的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类型标签。

抱歉,这与您的要求无关。 在我开始写这篇文章时,它意义非凡,但我如何看待它,就好像我刚刚走了一条完整的切线。

暂无
暂无

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

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