我有简单的菜单(动态生成),它的一部分看起来像
<span class="shared-folder icon-down-mini e-collapsed-sign" data-bind="css: collapsedCss()">
<span class="name shared-folder" data-bind="text: name">shared-email@mydomain.com</span>
</span>
<span class="shared-folder icon-none e-collapsed-sign" data-bind="css: collapsedCss()">
<span class="name" data-bind="text: name">INBOX</span>
</span>
然后我尝试通过ko.cleanNode
删除具有类icon-none
<script type="text/javascript">
ko.cleanNode($(".icon-none")[0]);
</script>
但这不起作用 - 仍在触发collapsedCSS()
对INBOX的绑定。
collapsedCSS
的代码如下:
FolderModel.prototype.collapsedCss = function ()
{
return this.hasSubScribedSubfolders() ?
(this.collapsed() ? 'icon-right-mini e-collapsed-sign' : 'icon-down-mini e-collapsed-sign') : 'icon-none e-collapsed-sign';
};
可能在RainLoop中绑定:
来自this.collapsed = ko.observable(true);
的 AbstractModel.call(this, 'FolderModel');
然后
this.collapsed = ko.computed({
'read': function () {
return !this.hidden() && this.collapsedPrivate();
},
'write': function (mValue) {
this.collapsedPrivate(mValue);
},
'owner': this
});
任何线索为什么不起作用或者使用jQuery并删除data-bind
类元素上的icon-none
属性会更好?