0

ZF2 には、js ファイルと css ファイルを含める必要があるビューがいくつかあります。私はビューでそうすることができます:

$this->headscript()->appendScript(...

しかし、ajax を使用してビューの結果を取得するときは、サーバー配列からビュー html、css インクルード、および js インクルードを取得する必要があります。このような:

array(
    'html' => '<div id="timepicker-wrap"></div>',
    'js_include' => array('/js/timepicker.js'),
    'js_eval' => '$("#timepicker-wrap").timepicker()',
    'css_include' => array('/css/timepicker.css'),
);

このデータをクライアント側に渡すと、js ライブラリに html、js、および css が含まれます。

問題は、サーバー側の headscript からすべての js および css ファイルとコードを取得することです。

HeadScript、HeadStyle、および InlineScript クラスを拡張し、すべての js および css を返す関数を追加する必要があるというのは正しいですか? それとも私は何か他のことをしなければなりませんか?

4

2 に答える 2

2

Ajax を使用すると、非常に簡単にレイアウトをバイパスできます。一例を次に示します。

SomeController.php

public function myAction()
{
    if($this->getRequest()->isXmlHttpRequest()) {
        $this->layout('application/layout/ajax-layout');
    }

    return new ViewModel();
}

アプリケーション/レイアウト/ajax-layout.phtml

<?php echo $this->content ?>

Ajax リクエストを使用して somecontroller/my/ にアクセスしようとすると、head/js/etc を含む基本レイアウトがレンダリングされません。

ただし、通常のリクエストで表示するとレンダリングされます。

これを行う方法は他にもいくつかありますが、おそらくこれが最も簡単です:)

于 2013-04-09T13:19:04.040 に答える