【问题标题】:how to call javascript function in layout content or view如何在布局内容或视图中调用 javascript 函数
【发布时间】:2019-02-24 23:54:46
【问题描述】:

我在布局视图中调用 javascript 函数。我对不同的视图有一个共同的布局,但有 2 个视图,特别是我想检查screen width。在布局中,我可以定义脚本,但它们将适用于我的整个应用程序,所以我只想在 2 个视图中特别提及它们。我本可以制作 2 个 javascript 文件并将它们包含在各自的视图中,但我认为这不是一个好的选择。

我将如何处理这个问题?

我有两个视图 mobile-viewdesktop-view

【问题讨论】:

    标签: javascript cakephp cakephp-3.0


    【解决方案1】:

    选项 1:

    将 JavaScript 放入一个小的 .js 文件中,并将该文件包含在带有 echo $this->Html->script('...'); 的特定视图中

    选项 2:

    创建一个包含 JavaScript 的元素 (echo $this->Html->scriptBlock('...');),并通过 echo $this->element('...'); 从每个视图中引用该元素

    【讨论】:

      【解决方案2】:

      使用HtmlHelper,您可以缓冲JavaScript 脚本块并将它们输出到<head>,或者最好在<body> 的末尾,如下所示:

      你的看法

      // Start a script block to be echoed at the end of the <body>
      $this->Html->scriptStart(['block' => 'bottomScripts']);
      echo "alert('Hi, it is JavaScript.');";
      $this->Html->scriptEnd();
      

      除非您在布局或视图中输出缓冲在名为 bottomScripts 的块内的脚本和/或脚本块,否则不会发生任何事情:

      你的布局

          …
          <?= $this->fetch('bottomScripts'); ?>
          </body>
      </html>
      

      【讨论】:

        猜你喜欢
        • 2020-05-30
        • 1970-01-01
        • 2015-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-11-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多