甜蜜警报2预定义内容,而不使用AJAX

时间:2018-08-02 08:39:05

标签: javascript jquery ajax sweetalert sweetalert2

是否可以通过预定义的div或类似内容来产生甜蜜警报?

基本上我想创建一个甜蜜的警报模式,该模式可以联系从数据库收集的很多信息,但是我想看看是否有除AJAX之外的其他方法来获取数据?

例如,我正在编写一个Laravel应用程序,有没有办法用刀刃和我的所有内容预编写一个div,然后有甜蜜的警报,只需在打开div并将其显示在其中一个div中时复制它即可情态?

甜蜜警报2文档here

2 个答案:

答案 0 :(得分:0)

好吧,我本人想出了一个简单的解决方案,但是我仍然愿意接受其他想法吗?

我已经在刀片中简单地创建了一个div,其中包含了我想要的所有内容,并将其包装在一个我称为mainWindow = new BrowserWindow( { width: 1280, height: 720, webPreferences: { nodeIntegration: false, preload: path.join(__dirname, 'preload.js'), nativeWindowOpen: true } } ); 的div中,

.sweetalert_template

然后我要像这样在整个应用程序中隐藏所有甜蜜警报模板

<div class="sweetalert_template">
   <span id="all_contacts">
     @foreach($user->contacts as $contact)
       <h4>{{$contact->name}}</h4>
       <p>{{$contact->telephone}}</p>
     @endforeach
   </span>
</div>

然后在警报加载时抓取HTML。

.sweetalert_template {
  position:fixed;
  top:5000px;
  left:5000px;
  visibility:hidden;
  display:none;
  z-index:-9999;
}

这是实现我的目标的一种相当简单的方法,它消除了不必要的AJAX调用。

答案 1 :(得分:0)

我认为这是ajax的典型情况-但是,如果您确实想输出与网站的所有联系方式,则可以尝试将数据放入对象数组中:

<script>
    // prepare the object array on server side
    var all_contacts = [
        @foreach($user->contacts as $contact)
            {name:"{{$contact->name}}", phone:"{{$contact->phone}}", email:"{{$contact->email}}"},
        @endforeach
    ];
    function showInfo(idx) {
        swal({
            type: 'info',
            title: 'Contact Information',
            html: all_contacts[idx].name + "<br/>" + all_contacts[idx].phone + "<br/>" + all_contacts[idx].email,
        })
    }
</script>

@foreach($user->contacts as $idx=>$contact)
   <span>{{$contact->name}}</span> <button onClick="showInfo({{$idx}})">More Info</button>
@endforeach

因此,在第一个循环(在script标记内)中,填充数组变量,在第二个循环中,使用“更多信息”按钮显示表。 这是一个非常基本的示例-最后,您将必须避免转义在第一个循环中破坏变量的字符以及在swal窗口中可能破坏html输出的字符。