Sweetalert: swal์— ์‚ฌ์šฉ์ž ์ •์˜ HTML์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•

์— ๋งŒ๋“  2018๋…„ 04์›” 24์ผ  ยท  15์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: t4t5/sweetalert

swal์— ์‚ฌ์šฉ์ž ์ •์˜ html์„ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ ํ–ˆ์ง€๋งŒ html์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์œ„์˜ ํ•ด๊ฒฐ์ฑ…์€ ๋ฌด์—‡์ด์—ˆ์Šต๋‹ˆ๊นŒ? ๋„์™€์ฃผ์„ธ์š”.
๊ฐ์‚ฌ ํ•ด์š”

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

์ด ๊ฐ™์€ ๊ฒƒ์ด ํšจ๊ณผ๊ฐ€ ์žˆ์„๊นŒ์š”?

const wrapper = document.createElement('div');
wrapper.innerHTML = YOUR_DYNAMIC_HTML;

swal({
  title: 'Test Title',
  text: 'Test Text',
  content: wrapper
});

๋ชจ๋“  15 ๋Œ“๊ธ€

์•ˆ๋…•ํ•˜์„ธ์š” @srikanthcx

์ด ์†”๋ฃจ์…˜์ด ํšจ๊ณผ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?

์•„๋‹ˆ์š”, ๋™์  html์„ ์ „๋‹ฌํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์†”๋ฃจ์…˜์€ ์ €์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ™์€ ๊ฒƒ์ด ํšจ๊ณผ๊ฐ€ ์žˆ์„๊นŒ์š”?

const wrapper = document.createElement('div');
wrapper.innerHTML = YOUR_DYNAMIC_HTML;

swal({
  title: 'Test Title',
  text: 'Test Text',
  content: wrapper
});

์™„๋ฒฝํ•˜์ง€๋งŒ ๋‘ ๋ฒˆ์งธ๋กœ ์‹คํ–‰ํ•˜๋ฉด ๋ž˜ํผ๊ฐ€ ์ด๋ฏธ ์„ ์–ธ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๋ฒˆ๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

๋™์  html์„ ์ธ์ˆ˜๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ•จ์ˆ˜์—์„œ ์œ„์˜ ๋ชจ๋“  ๊ฒƒ์„ ๋ž˜ํ•‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๋‹ค์Œ swal์„ ์ง์ ‘ ํ˜ธ์ถœํ•˜๋Š” ๋Œ€์‹  html๋กœ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒƒ์„ ์‹œ๋„ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค

var errors = "<ul class='error-list'><% @user.errors.full_messages.each do |message| %><li><%= message %></li><% end %></ul>";
swal({
      title: "Error!",
      content: errors, 
      icon: "error"
});

๋‹น์‹ ์€ ์ด๊ฒƒ์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

(function() {
  const wrapper = document.createElement('div');
  wrapper.innerHTML = "<ul class='error-list'><% @user.errors.full_messages.each do |message| %><li><%= message %></li><% end %></ul>";
  swal({
    title: "Error!",
    content: wrapper, 
    icon: "error"
  });
})();

์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ์ปจํ…์ŠคํŠธ๊ฐ€ ๋” ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋” ๋ช…ํ™•ํ•œ ์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

@lionralfs ์—๊ฒŒ ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ €์—๊ฒŒ ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ €๋Š” sweetalert2๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

@srikanthcx ์‚ฌ์šฉ์ž ์ •์˜ HTML์—์„œ ERB ํ…œํ”Œ๋ฆฟ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. SweetAlert๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์— SweetAlert๋‚˜ ๊ทธ ํฌํฌ์—์„œ๋Š” ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜๋ ค๋ฉด ERB ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ HTML ์š”์†Œ๋กœ ๋ Œ๋”๋งํ•œ ๋‹ค์Œ ์ด๋ฅผ Swal ๋ชจ๋‹ฌ๋กœ ๋ณต์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@t4t5 ๋‚ด๊ฐ€ ํ•˜๊ณ  ์žˆ๋˜ ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์Šต๋‹ˆ๋‹ค. js.erb ํŒŒ์ผ์—์„œ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ html ์ถœ๋ ฅ์„ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. erb ์ฝ”๋“œ์—๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” swal์ด html ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

var errors = "<ul class='error-list'><% @user.errors.full_messages.each do |message| %><li><%= message %></li><% end %></ul>";
swal({
      title: "Error!",
      content: errors, 
      icon: "error"
});

@srikanthcx ์•Œ๊ฒ ์Šต๋‹ˆ๋‹ค . ์ด ๊ฒฝ์šฐ @lionralf์˜ ์†”๋ฃจ์…˜์ด ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. $ const wrapper = ... var wrapper = ... ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์‚ฌ๋ผ์ ธ์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ์ฝ”๋“œ ๋ธ”๋ก์ด ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœ๋˜๋Š” ๊ฒƒ ๊ฐ™์•„์š”. ์ด๊ฒƒ์ด ๋‚ด๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ๋กœ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ ์ด์œ ์ž…๋‹ˆ๋‹ค.

function callSwalWithHTML(html) {
  const wrapper = document.createElement('div');
  wrapper.innerHTML = html;
  swal({
    title: "Error!",
    content: wrapper, 
    icon: "error"
  });
}

๊ทธ๋ฆฌ๊ณ  swal(...) callSwalWithHTML(...) #$ ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์ฝ”๋“œ๊ฐ€ ์—ฌ๋Ÿฌ ๋ฒˆ ํ˜ธ์ถœ๋˜๋Š” ์ด์œ ์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์•Œ๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค(๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์™œ wrapper is already defined ๋ผ๊ณ  ํ•ฉ๋‹ˆ๊นŒ?)

์ด ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. https://amjadiqbal.github.io/sweetalert/forms.html
๋น„๋””์˜ค ๊ฐ€์ด๋“œ ํฌํ•จ

sweetalert์—์„œ ์•ต์ปค ํƒœ๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ• ??

์•ˆ๋…•ํ•˜์„ธ์š” @Sudangadekar ์ด ์–‘์‹ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. sweetalert, https://amjadiqbal.github.io/sweetalert/forms.html ๋‚ด๋ถ€์— ๋ชจ๋“  html์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

girishbr picture girishbr  ยท  5์ฝ”๋ฉ˜ํŠธ

vmitchell85 picture vmitchell85  ยท  6์ฝ”๋ฉ˜ํŠธ

rapeflower picture rapeflower  ยท  4์ฝ”๋ฉ˜ํŠธ

waldyrious picture waldyrious  ยท  5์ฝ”๋ฉ˜ํŠธ

voodoo6 picture voodoo6  ยท  4์ฝ”๋ฉ˜ํŠธ