Knockout.js 如何访问引导框警报中的淘汰变量/观察值

Knockout.js 如何访问引导框警报中的淘汰变量/观察值,knockout.js,bootbox,Knockout.js,Bootbox,我想在bootboxjs警报中访问我的淘汰版js viewmodel。你知道为什么我的代码不起作用吗 JSfiddle: 简化代码为: <div class="bootbox"> <input data-bind="textinput: testText"/> Typed: <label data-bind="text: testText"></label> </div> <button data-bind=" click

我想在bootboxjs警报中访问我的淘汰版js viewmodel。你知道为什么我的代码不起作用吗

JSfiddle:

简化代码为:

<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不应用于bootbox元素,因为在调用applybindings之后,bootbox dom元素被删除和添加。我打开我的弹出窗口,在控制台和voilla中调用applybindings。我希望能够在bootbox中使用我的viewmodel


所以我想出了一个解决办法。首先绑定到一个特定的div,然后为bootbox内容创建一个div,然后创建bootbox弹出调用并将第二个div的内容放入其消息中(使用jquery.html),然后将绑定应用到bootbox弹出类[0],胜利属于您。Fiddle将被更新。

您的JSFIDLE有错误。看看控制台,我查了一下,但这里不是麻烦制造者,我肯定我用了不同版本的敲除和重新排序的外部资源更新了你的-你是在问为什么引导框警报中的文本框没有被填充吗?如果可能的话,试着在回答中包含来自JSFIDLE的代码,因为即使是JSFIDLE链接也会受到链接损坏的影响。
  var ViewModel = function() {
    var self = this;

    self.testText = ko.observable("Test");
    self.bootBox = function() {
      bootbox.alert($("div.bootbox").html());
    }

  }


  ko.applyBindings(new ViewModel());