如何结合 aurelia-materialize-bridge 和 sweetalert2
How to combine aurelia-materialize-bridge and sweetalert2
我想在弹出窗口中放置一个表单。
我找到了解决方案,但我正在寻找更清洁的东西。
我找不到使用 swal 弹出现有标签的方法。
所以我在我的模板中创建了一个隐藏表单:
<div id="myHiddenForm"><form role="form">
<md-input class="email" md-type="email" md-label="Email" md-validate="true"
md-validate-error="invalid email">
<i md-prefix class="material-icons">account_circle</i>
</md-input>
<button type="submit" md-button>
<i class="left material-icons">done</i>Submit
</button>
</form></div>
然后我用它的 innerHTML 创建了弹出窗口。
swal({
html: document.getElementById('myHiddenForm').innerHTML,
showConfirmButton: false,
}).catch(swal.noop);
然后我可以将回调附加到提交按钮,这终于起作用了。
显然,我不能使用md-value.bind
,因为显示的表格是原始表格的副本。
我可以使用 document.querySelectorAll('#myHiddenForm .email input')[0].value
访问输入的值,但我想知道是否有更好的方法来做到这一点?
也许有一个很好的方法来结合 aurelia-materialize-bridge 和 sweetalert2。
我知道这个 webapp 的其他地方都有 modal component but it's not capable of keeping the focus inside the modal popup ; plus I already use swal2 因为,你知道,它太棒了。
经过大量测试和完整阅读 sweetalert2
文档后,我找到了处理此问题的正确方法。我们只需要移动 <form>
节点。
swal({
html: '<span></span>'
, showCloseButton: true
, showConfirmButton: false
, onBeforeOpen: dom => swal.getContent()
.appendChild(document.querySelectorAll('#myHiddenForm form'))
, onClose: dom => document.getElementById('myHiddenForm')
.appendChild(swal.getContent().querySelectorAll('form'))
}).catch(swal.noop);
与 aurelia 一起使用非常完美,因为它保留了所有内容(监视器、事件、验证...)。
我们甚至不需要像我那样手动绑定提交按钮,我们可以使用aurelia的常规方式。
结论:RTFM !
我想在弹出窗口中放置一个表单。
我找到了解决方案,但我正在寻找更清洁的东西。
我找不到使用 swal 弹出现有标签的方法。
所以我在我的模板中创建了一个隐藏表单:
<div id="myHiddenForm"><form role="form">
<md-input class="email" md-type="email" md-label="Email" md-validate="true"
md-validate-error="invalid email">
<i md-prefix class="material-icons">account_circle</i>
</md-input>
<button type="submit" md-button>
<i class="left material-icons">done</i>Submit
</button>
</form></div>
然后我用它的 innerHTML 创建了弹出窗口。
swal({
html: document.getElementById('myHiddenForm').innerHTML,
showConfirmButton: false,
}).catch(swal.noop);
然后我可以将回调附加到提交按钮,这终于起作用了。
显然,我不能使用md-value.bind
,因为显示的表格是原始表格的副本。
我可以使用 document.querySelectorAll('#myHiddenForm .email input')[0].value
访问输入的值,但我想知道是否有更好的方法来做到这一点?
也许有一个很好的方法来结合 aurelia-materialize-bridge 和 sweetalert2。
我知道这个 webapp 的其他地方都有 modal component but it's not capable of keeping the focus inside the modal popup ; plus I already use swal2 因为,你知道,它太棒了。
经过大量测试和完整阅读 sweetalert2
文档后,我找到了处理此问题的正确方法。我们只需要移动 <form>
节点。
swal({
html: '<span></span>'
, showCloseButton: true
, showConfirmButton: false
, onBeforeOpen: dom => swal.getContent()
.appendChild(document.querySelectorAll('#myHiddenForm form'))
, onClose: dom => document.getElementById('myHiddenForm')
.appendChild(swal.getContent().querySelectorAll('form'))
}).catch(swal.noop);
与 aurelia 一起使用非常完美,因为它保留了所有内容(监视器、事件、验证...)。
我们甚至不需要像我那样手动绑定提交按钮,我们可以使用aurelia的常规方式。
结论:RTFM !