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');

そして、私が追加したボディタグの最後の直前に

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 に答える