たくさんのフィールドがあるビューがあり、それらのフィールドを次のようにスタイリングしています:
views-view-fields.html.twig
私の.themeファイルでは、前処理関数を使用して上記のテンプレートに追加の変数を渡しています。
function theme_preprocess_views_view_fields(&$vars) {
$vars['my_var'] = 'hello';
}
したがって、twigテンプレートでは、次のようなことができます。
{% for field in fields -%}
{{my_var}}
{%- endfor %}
これは、最初にロードされたフィールドのチャームのように機能しますが、[さらに読み込む]をクリックするか、公開されたフィルターを使用してビューをフィルタリングすると、ロードされた他の要素にはmy_varがなくなります。
ここで、my_varをテンプレートファイルに直接「キンティング」します。Ajaxで読み込まれた他のすべての要素ではmy_varがNULLであることを確認しました。これにより、問題は、theme_preprocess_views_view_fieldsが1回呼び出され、ページが初めて読み込まれ、Ajax呼び出しから完全に無視されることにあると思いました 。
この前処理は、Drupalがビュー自体で実行しているAjax呼び出しによって呼び出されて処理されるべきではありませんか?
そうでない場合、他の要素がロードされたときにDrupalにクエリを実行してこのフックを再実行する方法はありますか?
ありがとう!
1
私の日を作った「キント」ハハ。
—
Sssweatなし16
:)それがうれしかった!他に何か提案はありますか?
—
Drupalotto 2016
@Drupalottoビューのキャッシュをオフにしようとしましたか?理由を確認してください。
—
ジョン
@neetu morwani ..
—
Jonh
ビューのキャッシュはオフです。キャッシュの問題のようには見えません。Ajaxページャーを介して次の行セットが呼び出されているときにHook_preprocess_views_viewが呼び出されませんか?AJAXからの変数配列行を前処理する方法はありますか?
—
neetu morwani