javascript - 我如何使用 symfony 的数据初始化我的单页 Backbone 应用程序

标签 javascript symfony backbone.js

我正在寻找解决方案,但徒劳无功。

我有一个 Symfony2 站点,一个页面加载一个像这样的主干应用程序:

{% extends "AcmeCardBundle::layout.html.twig" %}


{% block content %}
    <div id="main_container"></div>
{% endblock %}

{% block javascripts %}

    <script>
       var idfoo = "foo";
    </script>

    {% javascripts
    '@AcmeCardBundle/Resources/public/js/vendors/require.js'
    '@AcmeCardBundle/Resources/public/js/boot.js'%}
    <script type="text/javascript" src="{{ asset_url }}" data-main="{{ asset_url }}"></script>
    {% endjavascripts %}
{% endblock %}

{% block stylesheets %}
    {% stylesheets 'bundles/acmecard/css/screen.css' filter='cssrewrite' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endblock %}

此代码使用 Requirejs 加载我的 boot.js

    requirejs.config({
        baseUrl: 'http://localhost/symfony2/web/bundles/acmecard/js',
        paths: {
            jquery: 'vendors/jquery',
            underscore: 'vendors/underscore',
            backbone : 'vendors/backbone'
        }
    });

    // Start the main app logic.
    requirejs(['jquery','underscore','backbone', 'app/app','app/router' ],
        function   ( $,  _  ,  Backbone, app ) {

            $(document).ready(function () {

                console.log(window.idfoo);

                app.initialize();
            });
        }
);

我的问题可能很愚蠢,但我不明白如何从 Backbone 中的 Symfony2 访问 var window.idfoo 。我的方法不起作用...

谢谢

最佳答案

一点也不傻。虽然我无法帮助您解决 backbone 本身,但我在 AngularJS 方面也遇到了类似的问题。尽管如此,分辨率基本上是相同的。

这就是我解决这个问题的方法:

<script>
    window['myBackboneApp'] = {
        var1: 'foo',
        var2: 'bar'
    }
</script>

然后在 boot.js 中直接引用 window['myBackboneApp']

我不确定这是否是处理这个问题的正确方法。例如,就在最近,我发现Angular中有一种传递属性的方法至 Controller 。也许 backbone.js 也有类似的东西?

关于javascript - 我如何使用 symfony 的数据初始化我的单页 Backbone 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30300778/

相关文章:

javascript - 使用 javascript 在表格单元格中插入数组值

symfony - 具有全局 Twig 服务的基类 Controller

javascript - 从li标签获取图像来源

Symfony2 使用多个防火墙避免 security.yml 中重复/重复的属性

backbone.js - 如何委托(delegate) "load"DOM 事件?

backbone.js - 获取集合长度

javascript - 如何自定义jquery-steps?

javascript - HTML5 Canvas,替换图像中的颜色在某些机器上不起作用

javascript - 使用 jQuery 和 YouTube API 加载事件

php - 将消息 TTL 设置为一小时 RabbitMQ