我正在尝试使用 Knockout.js 的本机模板功能来渲染 HTML 以嵌入 Flash 对象。jQuery.tmpl 完美地完成了这项工作,但是由于与 Knockout-sortable 插件的冲突,我无法使用它。
下面是一个使用原生模板的 Flash 插件示例:http://jsfiddle.net/7y3ub/35/
在 Chrome 中,播放器永远不会出现。在 Firefox 中,如果您在选中复选框时更改频道,播放器将显示。然而,重新选中该框会使玩家再次消失。
'if' 绑定是必要的,因为在页面期间可能有许多 Flash 插件加载和卸载实例。
据我所知,当对象/嵌入标签进入可见 DOM 时,HTML 需要全部到位。这就是为什么 jQuery.tmpl 在我的情况下会很棒。我自己尝试过形成 HTML 字符串,但我不知道如何应用和维护新标记包含的绑定。
归根结底,我要么需要一种在仍然支持绑定的同时立即呈现 HTML 的方法,要么找到一种使 jQuery.tmpl 和 Knockout-sortable 相互兼容的方法。
下面是一个不兼容的例子:http: //jsfiddle.net/7y3ub/41/
如果你简单地取消引用 jQuery.tmpl,这个例子中的代码将完美地工作。http://jsfiddle.net/7y3ub/42/
控制台中的错误消息似乎暗示上下文没有被正确调整,或者暗示的 foreach 没有执行。在此调整中,消息变得更加不寻常,其中SubItem
对象被简单的字符串替换:http: //jsfiddle.net/7y3ub/43/