Knockout JS - 模态形式与Bootstrap

时间:2015-12-13 08:02:43

标签: javascript jquery twitter-bootstrap knockout.js

已经工作了大约2周才能让CRUD系统与淘汰赛一起工作,而且它正在慢慢地出现。每当我尝试添加按钮时,我都会遇到问题。

目前我最大的问题是我的添加按钮,它假设从我的新闻中清除所有值,并给我一个空白表格填写。目前我已经使用bootstrap以模态形式加载。在我的网站上,屏幕渐渐消失,好像它将向您展示模态DIV,但没有任何反应。

http://jsfiddle.net/rqwku4kb/3/

self.AddNewIncident = function() {
var id = this.ID;
$('#myModal').modal('show')
     self.currentIncident(null);
 ;
    };

有人会有任何想法吗?

2 个答案:

答案 0 :(得分:1)

使用Knockout来控制你的模态,就像其他一切一样。如果您到达视图模型周围以摆弄DOM,事情就会出错。

Twitter bootstrap 3 Modal with knockout

答案 1 :(得分:0)

单击背景时模式将关闭,因此您需要使用以下两种方法之一来抑制模式。使用bootstrap属性阻止因背景点击而关闭模式,如下所示:

通过javascript:

$('#myModal').modal({
    backdrop: 'static',
    keyboard: false
})

HTML:

<div id="myModal" class="modal fade" role="dialog" data-bind="with: currentIncident" data-backdrop="static" data-keyboard="false">

或者禁止后台点击事件。当您单击新按钮时,单击事件将触发button,然后气泡/向上传播DOM,从而触发背景点击,然后再次关闭对话框。

因此要么抑制处理程序中的传播:

self.AddNewIncident = function(data, ev) {
    var id = this.ID;
    $('#myModal').modal('show');
    self.currentIncident(null);
    ev.stopPropagation();
};

或在点击装订中,淘汰赛将为您执行此操作:

<button type="button" class="btn btn-success" value='Edit' data-toggle="modal" data-target="#myModal" data-bind="click: AddNewIncident, clickBubble: false">New</button>