0

我目前正在做一个项目,我想将 jQuery 实现到 cakephp 2.0。

我遵循了以下指南: http ://book.cakephp.org/2.0/en/core-libraries/helpers/js.html

即我已经下载了 jquery-1.8.1.js(也尝试了 .min.js 文件)并将其放在 app/webroot/js 中。在我添加的默认布局文件中

echo $this->Html->script('jquery');

就在我添加的body标签结束之前

echo $this->Js->writeBuffer();

在我的控制器中,我添加了

public $helpers = array('Js' => array('Jquery'));

当我重新加载页面并检查源代码时,我看到 jQuery 文件的链接正常工作。但是当我尝试添加一个像这样的简单脚本(只是添加一个警报)时(在视图文件中):

$alert = $this->Js->alert('Hey there');

什么都没发生...

那里有任何善良的人可能对我做错了什么有任何建议吗?我花了几个小时查看互联网并遵循不同的指南,但仍然可以得到一个简单的东西作为警报工作。

4

2 回答 2

3

根据 CakePHP 2.0 文档:“默认情况下,警报不缓冲,并返回脚本片段。”

所以默认情况下:

echo $this->Js->alert('Hey there'); // outputs alert("Hey there");

要覆盖此行为并将脚本添加到缓冲区:

echo $this->Js->alert('Hey there', true);

要写入缓冲区(通常在之前</body>):

echo $this->Js->writeBuffer();
于 2012-11-20T03:26:00.197 回答
0

作为替代方案,您可以使用 scriptBlock:

$jscript = "alert('Hey there!');";
echo $this->Html->scriptBlock($jscript, array('inline'=>false));
于 2012-11-30T00:05:04.783 回答