Điểm:0

Tôi mất đề xuất mẫu khi một sự kiện ajax được gọi

lá cờ de

Tôi đang tạo đề xuất chủ đề dựa trên mô-đun formdazzle, tôi đã tạo biến thể của riêng mình vì tôi cần mức độ chi tiết khác của tên chủ đề và nó hoạt động tốt.

Chà, trong hook thay đổi, tôi có khóa #pre_render và phương thức tạo đề xuất de:

Ví dụ

$form['#formdazzle'] = ['form_id' => $form_id];

 // Thêm chức năng kết xuất trước của chúng tôi vào cuối danh sách.
 if (!isset($form['#pre_render'])) {
   $form['#pre_render'] = [];
 }
 $form['#pre_render'][] = [self::class, 'preRenderForm'];

Khi biểu mẫu tải các đề xuất hoạt động tốt, bây giờ, tôi có một đoạn văn và nút để thêm các phần tử đoạn văn khác, khi tôi nhấp vào nó, Ajax được thực thi theo mặc định và phần tử mới được tạo, nhưng các đề xuất chủ đề không được tạo lại và phần tử mới đánh dấu được thay thế không phải là đánh dấu chính xác (sử dụng đề xuất mặc định drupal).Đó là, tôi mất tất cả đánh dấu của các mẫu.

nhập mô tả hình ảnh ở đây

Khi thực hiện kiểm tra, tôi nhận thấy rằng khi sự kiện ajax được thực thi, chức năng pre_render không được thực hiện lại và đó là lý do tại sao các đề xuất không được tạo lại.

Có cách nào để pre_render chạy lại sau một sự kiện Ajax không?

Cảm ơn.

4uk4 avatar
lá cờ cn
Trong một lệnh gọi lại Ajax, chỉ các phần động của biểu mẫu được hiển thị và thay thế. Tuy nhiên, điều này không ảnh hưởng đến formdazzle, bởi vì điều này dành cho các phần tử đầu vào, cũng như các phần tử được thay thế. Nhưng những gì trong gọi lại #pre_render, bạn không thể đặt nó ở một nơi khác?
Alfred Armstrong avatar
lá cờ cn
Đề xuất chủ đề phải tương đối tĩnh, chúng không nên phụ thuộc vào các thuộc tính động thay đổi liên tục. Bạn nên tạo chúng qua hook_X_suggestions_alter, không phải qua pre_render, nếu đó là điều bạn đang làm.
chalo avatar
lá cờ de
@AlfredArmstrong Tôi hiểu những gì bạn đề cập, như tôi nhận xét, trong phần pre_render, điều được thực hiện là cung cấp thông tin bổ sung để hook_X_suggestions_alter có thể thêm các đề xuất bổ sung, cuối cùng, các đề xuất đến từ các móc này.
Alfred Armstrong avatar
lá cờ cn
Có nhưng kết xuất trước không được chạy mọi lúc nên nó sẽ không hoạt động. hook_suggestions_alter phải độc lập, lý tưởng nhất là lấy mọi thứ nó cần từ các tham số được truyền cho nó.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.