Binding 剔除虚拟元素并使用;加上;没有容器元素

Binding 剔除虚拟元素并使用;加上;没有容器元素,binding,knockout.js,Binding,Knockout.js,有人能告诉我为什么这样做吗: <div data-bind="with: selectedItem"> <div id="dialog" data-bind="jqDialog: {title: drugName}"> //contents of a jquery ui modal </div> </div> 我想去掉那个只保存数据绑定属性的div包装器。我想虚拟元素会让这变得轻而易举 编辑:这里是页面的核心部分(

有人能告诉我为什么这样做吗:

<div data-bind="with: selectedItem">
    <div id="dialog" data-bind="jqDialog: {title: drugName}">
        //contents of a jquery ui modal
    </div>
</div>
我想去掉那个只保存数据绑定属性的div包装器。我想虚拟元素会让这变得轻而易举


编辑:这里是页面的核心部分(尽管它不会在小提琴中运行),

我不确定您是否已经解决了这个问题,但您的服务器是否配置为删除注释


请参阅:

看起来它应该可以工作。您能在JSFIDLE中提供更多的细节或示例吗?您是在所有浏览器上看到这个问题还是仅在一些浏览器上看到这个问题?在无法看到
selectedItem
实际包含的内容的情况下,我最好的猜测是
drugName
不是
selectedItem
的属性。可能是属性名实际上是“DrugName”或“name”或其他名称。您看到的错误与我描述的一致,即试图将元素绑定到不存在的属性名。selectedItem是preferredDrugs数组的单个元素。您可以看到它的外观(它是JavaScript窗格顶部的数据对象,忽略所有其他内容)。我可以控制selectedItem,它确实保持相同的结构,并且有drugName属性。是的,我同意你的看法,它似乎无法绑定它找不到的道具。我有点不解为什么,尽管它在不使用KO虚拟元素的情况下有效。Michael,我只是在Firefox中真正测试,我只是在玩KO,试图通过使用我可以访问的现有内部web服务来学习它。我们有一个外包的移动应用程序,在年底之前内部将使用KO。
<!-- ko with: selectedItem -->
    <div id="dialog" data-bind="jqDialog: {title: drugName}">
        //contents of a jquery ui modal
    </div>
<!-- /ko -->
Error: Unable to parse bindings.
Message: ReferenceError: drugName is not defined;
Bindings value: jqDialog: {title: drugName}