Law*_*Dol 5 javascript browser user-interface mithril.js
作为深入学习简单JS编程(在最新浏览器上)的实践练习,我正在建立一个SPA来维护客户记录.我使用的唯一外部库是Mithril.js MVC.到目前为止,我有一个包含来自我的数据库的实时数据的表视图,其中包括每个记录的编辑,合并和删除按钮.编辑完成并运行良好,使用内联"表单"并保存/取消该工作.
我现在正在尝试实现删除和合并,两者都需要一个弹出确认才能被操作,这就是我被困住的地方.我确切地知道我在桌面GUI环境中做了什么,所以路障可能是我对浏览器前端缺乏了解而不是秘银本身.
理想情况下,我想创建一个自包含,可重用的"popup"组件代表弹出窗口,但我看不出我应该如何使用Mithril在JS中这样做,特别是,但不仅仅是如何制作秘银将一个视图叠加在另一个视图之上.
从广泛的大纲到具体的代码片段,我们将不胜感激.
您可能希望使用视图模型标志来控制模态弹出窗口的可见性.
//modal module
var modal = {}
modal.visible = m.prop(false)
modal.view = function(body) {
return modal.visible() ? m(".modal", body()) : ""
}
//in your other view
var myOtherView = function() {
//this button sets the flag to true
m("button[type=button]", {onclick: modal.visible.bind(this, true)}, "Show modal"),
//include the modal anywhere it makes sense to
//its visibility is taken care by the modal itself
//positioning is controlled via CSS
modal.view(function() {
return m("p, "modal content goes here")
})
}
Run Code Online (Sandbox Code Playgroud)
要创建模式对话框,您可以使用其中一个CSS框架中的样式(例如Bootstrap),或.modal使用您自己的CSS样式
/*really contrived example to get you started*/
.modal {
background:#fff;
border:1px solid #eee;
position:fixed;
top:10px;
left:100px;
width:600px;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3200 次 |
| 最近记录: |