1

現在のビューの JS ファイルのインクルードを処理するコンポーネントとヘルパーのペアを作成しています。

アイデアは、ビュー (またはアクション) と同じ名前の JS ファイルを自動ロードすることです。したがって、「admin_add.ctp」というビューと「admin_add.js」というファイルが同じフォルダーにある場合、JS ファイルは JS バッファーに含まれます。これが両方の beforeRender 呼び出しで自動的に行われることを望みます。

注意が必要なのは、Controller::action レベル (コンポーネントを使用) でオートロードを有効/無効にする必要があることですが、包含ロジックはビュー レベル (ヘルパーを使用) で行う必要があります。

各ビュー テンプレートにコードを記述せずに、有効化/無効化トリガーをコンポーネントからヘルパーに渡すにはどうすればよいですか?

4

1 に答える 1

0

コンポーネントから controller->helpers['helperName'] 配列を変更することでこれを解決しました。

ヘルパーはコンポーネントの beforeRender 呼び出しの後にインスタンス化されるため、ヘルパーの設定を変更し、Helper::__contruct($View, $settings) 呼び出しからデータにアクセスできます。

このコールバックの順序を維持するために CakePHP の内部構造に依存できるかどうかはわかりませんが、今のところ機能しています。

于 2012-06-09T18:08:09.920 に答える