Tôi có chế độ xem với một loạt các trường và tôi đang tạo kiểu cho các trường đó trong:
views-view-fields.html.twig
Trong tệp .theme của tôi, tôi cũng đang sử dụng hàm tiền xử lý để chuyển các biến bổ sung cho mẫu ở trên.
function theme_preprocess_views_view_fields(&$vars) {
$vars['my_var'] = 'hello';
}
Vì vậy, trong mẫu twig, tôi có thể làm một cái gì đó như:
{% for field in fields -%}
{{my_var}}
{%- endfor %}
Điều này hoạt động giống như một cơ duyên cho các trường được tải đầu tiên, nhưng khi tôi nhấn "Tải thêm" hoặc tôi sử dụng các bộ lọc bị lộ để lọc chế độ xem, các thành phần được tải khác sẽ không có my_var.
Bây giờ, "kinting" my_var trực tiếp trong tệp mẫu. Tôi thấy rằng my_var là NULL cho tất cả các phần tử khác được tải sau với Ajax và điều này khiến tôi nghĩ rằng vấn đề là do theme_pre process_view_view_fields được gọi một lần, lần đầu tiên trang được tải và hoàn toàn bị bỏ qua khỏi lệnh gọi Ajax.
Không phải quá trình tiền xử lý này được gọi và xử lý bởi cuộc gọi Ajax mà Drupal đang thực hiện trên chính khung nhìn?
Nếu không, có cách nào để truy vấn Drupal để chạy lại hook này khi các phần tử khác được tải không?
Cảm ơn!