【问题标题】:Javascript source in partial view of symfonysymfony 部分视图中的 Javascript 源代码
【发布时间】:2010-02-01 14:52:59
【问题描述】:

我用的是symfony 1.4,我写了一段js代码在模板中使用,我想把它放在一个js分隔的文件中,因为我会在代码中多次使用它。

我使用以下方法将 JS 添加到模板中:

<?php use_javascript('mi_js') ?>

这个模板有一些 ajax 调用,它们使用 renderPartial 方法刷新视图的区域。这个新区域也使用了 JS 代码,所以我需要在局部视图中添加此代码。 但是如果添加:

<?php use_javascript('mi_js') ?>

在局部,那么它不起作用。 为了完成这项工作,我必须将所有 JS 代码放在部分中,例如:

<script type="text/javascript">/*<![CDATA[*/

$('.mi_class').click(function() {

 var a = $(this).parent();
...

正如我所说,我不想这样做。

知道我能做什么吗?有什么模板方法可以做到这一点?

提前致谢。 亚历杭德罗 G.

【问题讨论】:

    标签: php javascript symfony1


    【解决方案1】:

    你必须把代码放在部分的原因如下:

    当您使用use_javascript('mi_js') 时,(路径)JS 文件将被添加到sfResponse 对象中。然后,当模板被渲染时,所有的 JS 文件都会通过get_javascripts() 包含到布局文件中。

    但现在由于您只渲染部分内容并通过 Ajax 将结果发送回,因此 JS 文件包含在内。

    我建议将您的代码放入一个函数并将其添加到您的 HTML 文件的标题中。然后在您调用的部分中:

    <script type="text/javascript">/*<![CDATA[*/
    
    $('.mi_class').click(the_new_function())
    

    (也许你要定义参数,我不知道)。

    【讨论】:

      【解决方案2】:

      您可以通过 jQuery 的 live() 方法将事件处理程序附加到未来的 DOM 元素。另一种方法是在加载您的部分后直接绑定处理程序。

      【讨论】:

        【解决方案3】:

        如何以正常方式将 JS 文件添加到使用部分的父页面,而不是部分本身。

        如果部分在很多地方被调用,我只需将它添加到应用程序或模块的 view.yml 文件中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-16
          相关资源
          最近更新 更多