twitter-bootstrap – 用knockout自动显示twitter引导模态对话框
发布时间:2020-12-18 00:15:40 所属栏目:安全 来源:网络整理
导读:当我从列表中选择一个项目时,我需要显示在单页应用程序中编辑项目的模态对话框。 问题:我使用可见的绑定,但是这样做很麻烦,它不能正常工作,因为它只显示对话框,没有覆盖,并且渐变(如果有的话)不起作用。 HTML: div class="modal hide fade" data-bin
当我从列表中选择一个项目时,我需要显示在单页应用程序中编辑项目的模态对话框。
问题:我使用可见的绑定,但是这样做很麻烦,它不能正常工作,因为它只显示对话框,没有覆盖,并且渐变(如果有的话)不起作用。 HTML: <div class="modal hide fade" data-bind="visible:selectedItem,with:selectedItem"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 data-bind="text:name"></h3> </div> <div class="modal-body"> <form data-bind="submit:deselectItem"> <!-- editor for item here --> </form> </div> <div class="modal-footer"> <a href="#" class="btn" data-bind="click:deselectItem">Close</a> </div> </div> 这样的模型是具有observableList,obervable selectedItem和deselectItem函数的简单对象,它将selectedItem设置为null。 解决方法
正如我想到的,(可能)最好的方法是创建一个ko绑定处理程序,我称之为showModal:
ko.bindingHandlers.showModal = { init: function (element,valueAccessor) {},update: function (element,valueAccessor) { var value = valueAccessor(); if (ko.utils.unwrapObservable(value)) { $(element).modal('show'); // this is to focus input field inside dialog $("input",element).focus(); } else { $(element).modal('hide'); } } }; 用法是这样的: <div class="modal hide fade" data-bind="showModal:selectedItem,with:selectedItem"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <h3 data-bind="text:name"></h3> </div> <div class="modal-body"> <form data-bind="submit:deselectItem"> <!-- editor for item here --> </form> </div> <div class="modal-footer"> <a href="#" class="btn" data-bind="click:deselectItem">Close</a> </div> </div> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |