2016-09-09 7 views
0

現在、私はajax(ZF2アプリでjquery 1.x)を使ってサイトの一部をロードしています。そのビューの先頭に依存するjavascript/cssファイルがあるビューです。 ViewModelでsetTerminal(true)を宣言すると、ビューのコンテンツ部分のみが返されるため、$this->headScript()->appendFile(),$this->inlineScript()->appendFile()および$this->headLink()->appendStylesheet()のファイルは含まれません。ZF2 - ajax/setTerminalのビューを読み込むときにヘッドファイルを含む

これは、コンテンツがajax経由で正しく読み込まれている間は、そのビューで使用する必要がある追加のスクリプトがあると機能しないことを意味します。

これらのファイルを何らかの形で含めるアプローチはありますか?そのため、ajaxによって要求されたコンテンツは機能しますか? 私はダッシュボードを開発していますが、これはajaxを使用して、ユーザー情報、購読情報などのさまざまなコントローラからデータを取得します。ダッシュボードでは、すべてのjavascript/cssファイルユーザービューとサブスクリプションビューで定義されていますが、確かにダッシュボードビューには多くのjs/cssファイルが含まれていますか?より良い方法が必要です。

答えて

0

ページの一部をajax、つまり部分的にhtmlで読み込む場合、部分テンプレートには<head>の部分が含まれてはいけません。あなたのメインページに既に管理されている<head>があるので、1つ(確かではない)があっても、部分的なものは何の効果もありません。

$this->headScript()$this->headLink()ヘルパーを使用しないでください。また、あなたのスクリプトbeetwen <script>タグを含めても、あなたのコードはDOMに挿入されますが、それは解釈されません。これを行うには、other questionをお読みください。

+0

返信いただきありがとうございます。私の部分にはセクションがありませんが、 '$ this-> headScript() - > appendFile'などを含んで、ビュー固有のjsとcssを読み込みます。これは、ビューで作成された要素に対する対話に必要です。これらは、ページがXHRなしで要求されたときに必要です。 ajaxリクエストでは、ajaxコールの成功とDOMへの注入に続いて、jqueryの '$ .getScript'でより良い結果を得ています。 evalを使うことは、むしろ避けたいと思う貧しい選択です。 –

関連する問題