第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

Rails - 在 ajax 之后使用部分更新 bootstrap popover 內(nèi)容

Rails - 在 ajax 之后使用部分更新 bootstrap popover 內(nèi)容

慕神8447489 2023-12-19 21:32:19
我正在使用引導(dǎo)彈出窗口構(gòu)建通知功能。當(dāng)用戶單擊通知時(shí),它會通過 ajax 調(diào)用將該通知標(biāo)記為已讀。在 ajax 成功時(shí),我想用更新的版本替換彈出窗口的內(nèi)容。這是我到目前為止所擁有的:$(document).ready(function(){  $("#notificationsBell").popover({    'title' : $('.notifications-title-header').html(),    'html' : true,    'placement' : 'left',    'content' : $(".notifications-list").html()  }); });$('#notificationsBell').off("click").on("click", function() {  $("#notificationsBell").popover('toggle');})$(document).on("click", ".notif-popup-container", function() {  // 1. get correct id for clicked notification  var notifId = $(this).attr("id");  // 2. Update the notification to be read and show update  $.post(    "/notifications/read",    { notif_id: notifId },  ).done(function(data) {    $('#notifUnreadCount').html(data.unread_notifs);      // 3. Replace html content of hidden div with updated notifications  $('.notifications-list').html("<%= j (render partial: 'notifications/partials/test_partial') %>");      // 4. Set popover content to be that div's html  var popover = $('#notificationsBell').data('bs.popover');  popover.config.content = $('.notifications-list').html();})# what is originally stored in the popover <div style="display:none" class="notifications-list">  <%= render 'notifications/partials/popover_notifications' %></div># _popover_notifications.html.erb# this is rendered twice, once above and once on ajax success<% unread_notifications = Notification.unread_count(current_user) %><% if unread_notifications.eql? 0 %>    No notifications to display! You are up to date.<% else %>    <% notifs = current_user.notifications.where(read_at: nil).order("created_at DESC") %>    <% notifs.each do |notif| %>        </div>    <% end %><% end %>此內(nèi)容通過部分顯示。然而,這就是問題出現(xiàn)的地方。雖然我期望ajax成功回調(diào)中的部分在ajax成功時(shí)渲染,但最近了解到部分的渲染首先由服務(wù)器完成(甚至在任何js運(yùn)行之前),然后是結(jié)果被傳回 javascript。因此,兩個(gè)部分都在頁面加載時(shí)呈現(xiàn),這意味著我無法再在 ajax 成功后通過部分渲染動態(tài)設(shè)置彈出窗口內(nèi)容。我的問題是,有沒有辦法解決這個(gè)問題,讓我能夠動態(tài)渲染部分內(nèi)容,而不是在頁面加載時(shí)將其填充到 js 中?或者如果沒有,可能是一種完全不同的方法——我對任何想法持開放態(tài)度。謝謝。
查看完整描述

1 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

您可以像這樣從控制器中獲取部分內(nèi)容:


class TestController < ApplicationController

? def render_partial


? ? notification_id = params[:notification_id]


? ? # Fetch notification data

? ? notification = Notification.find(notification_id)


? ? # Return partial with new notification data

? ? render partial: 'notifications/partials/test_partial', locals: {:notification => notification}

? end

end

然后附加?JS 中的響應(yīng):


$('.notifications-list').append(resp)


查看完整回答
反對 回復(fù) 2023-12-19
  • 1 回答
  • 0 關(guān)注
  • 160 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號