代码之家  ›  专栏  ›  技术社区  ›  Andrew

Zend框架:如何只生成一次javascript?

  •  0
  • Andrew  · 技术社区  · 14 年前

    我正在创建一个自定义的zend表单元素,它需要一些javascript。我可以像这样添加所需的javascript:

    /**
     * Renders the javascript to the view.
     */
    protected function _generateJavaScript()
    {
        $this->view->headScript()->captureStart(); ?>
    
            $(document).ready(function(){
                alert('hello');
            });
    
        <?php $this->view->headScript()->captureEnd();
    }
    

    2 回复  |  直到 14 年前
        1
  •  0
  •   cHao Hammerite    14 年前

    你也许可以做一些

    protected function _generateJavaScript()
    {
        if (!isset($this->view->scriptGenerated))
        {
            // generate the script, then...
            $this->view->scriptGenerated = true;
        }
    }
    

    显然,您需要选择一个更好的名称,如果您有多个使用同一模式的脚本,则不会发生冲突。

    或者,您可以将脚本放在一个文件中。看起来像 appendFile 不会多次包含脚本文件。我没有立即看到任何这样的保护临时脚本。

    protected function _generateJavaScript()
    {
        $this->view->headScript()->appendFile('path/to/script.js');
    }
    
        2
  •  0
  •   takeshin    14 年前

    HeadScript助手非常聪明,可以检测重复项,但必须使用 appendScript() appendFile()

    对于jQuery onload函数,使用 $this->jQuery()->addOnload('//yourcode');