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

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

嘗試呈現(xiàn) js.erb 部分模板時(shí)出現(xiàn)問(wèn)題

嘗試呈現(xiàn) js.erb 部分模板時(shí)出現(xiàn)問(wèn)題

qq_花開(kāi)花謝_0 2022-05-26 16:39:51
Rails 版本 6.0.2.1 Ruby 版本 2.6.5我正在嘗試使用 jquery 在我的應(yīng)用程序的顯示視圖中呈現(xiàn)部分內(nèi)容。這是我的 javascript 文件:import $ from "jquery";$(() =>  $("a#test-button").on("click", ev => {    ev.preventDefault;    $("div#teacher-form").html("<%= j render(partial: 'teacher_form') %>");  }));然后我在視圖模板中引用了 javascript,如下所示:<%= javascript_pack_tag 'test_button' %>  <%= link_to 'Test',  stakeholder_student_school_year_path, data: { type: :html }, remote: true,  id: 'test-button', class: 'btn btn-info' %><div id="teacher-form"></div>在我的控制器中也是如此:def show    @teachers = @year.teachers     respond_to do |format|      format.html       format.js {         render 'student_school_years/_teacher_form',         layout: false       }    end   end當(dāng)我單擊測(cè)試按鈕添加部分時(shí),它會(huì)在視圖中呈現(xiàn)以下代碼片段 <%= j render(partial: 'teacher_form') %> 而不是實(shí)際的部分模板。無(wú)法弄清楚發(fā)生了什么。
查看完整描述

1 回答

?
慕妹3242003

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

您似乎完全誤解了 JS.erb 模板的工作原理。


您不.js.erb使用javascript_pack_tag. 那是在資產(chǎn)管道中引用資產(chǎn)。而且您不能在資產(chǎn)管道中渲染部分,因?yàn)樗鼈兪窃诓渴饡r(shí)編譯的。


你只是得到一個(gè)文字字符串的原因"<%= j render(partial: 'teacher_form') %>"是資產(chǎn)不是通過(guò) webpack 中的 ERB 發(fā)送的。Sprockets 會(huì)做到這一點(diǎn)并引發(fā)錯(cuò)誤。


相反,您將編寫(xiě)js.erb模板以更改頁(yè)面:


def show

    @teachers = @year.teachers 

    respond_to do |format|

      format.html 

      format.js # renders show.js.erb

    end 

  end

// You can't use imports since this is not run in the assets pipeline

// you have to make jQuery a global

$("#teacher-form").html("<%= j render(partial: 'teacher_form' %>");

當(dāng)您單擊鏈接時(shí),Rails ujs 驅(qū)動(dòng)程序?qū)嶋H上只是加載該腳本并在頁(yè)面上對(duì)其進(jìn)行評(píng)估。前提是這可以讓您在沒(méi)有 SPA 框架或?qū)嶋H編寫(xiě)請(qǐng)求處理程序的情況下執(zhí)行 ajax 請(qǐng)求和 SPA 之類的東西。它是否是一個(gè)好主意是值得商榷的。


我不明白的是,為什么您不首先將表單放在視圖中,而只是切換其可見(jiàn)性,而不是讓服務(wù)器將其同化,這只是客戶端轉(zhuǎn)換。


查看完整回答
反對(duì) 回復(fù) 2022-05-26
  • 1 回答
  • 0 關(guān)注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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