我想在bootboxjs警报中访问我的knockout js viewmodel。你知道为什么我的代码不起作用吗?
JSfiddle:https://jsfiddle.net/bt2pffcd/1/
简化代码是:
<div class="bootbox">
<input data-bind="textinput: testText"/> Typed:
<label data-bind="text: testText"></label>
</div>
<button data-bind=" click: bootBox">Launch bootbox!</button>
我的viewmodel和applybindings:
var ViewModel = function() {
var self = this;
self.testText = ko.observable("Test");
self.bootBox = function() {
bootbox.alert($("div.bootbox").html());
}
}
ko.applyBindings(new ViewModel());
答案 0 :(得分:1)
我了解到我的viewmodel未应用于bootbox元素,因为在调用applybindings之后会删除并添加bootbox dom元素。我打开我的弹出窗口并在控制台和voilla中调用applybindings它有效。我希望能够在bootbox中使用我的viewmodel。
所以我想出了一个解决方案。最初绑定到特定的div。然后为bootbox内容创建一个div,然后创建bootbox弹出调用并将第二个div的内容放入其消息(使用jquery.html),然后将绑定应用于bootbox popup class [0],胜利就是你的。小提琴将会更新。