KnockoutJS按类删除对所选元素的绑定

时间:2016-10-14 15:42:07

标签: jquery css knockout.js

我有简单的菜单(动态生成),它的一部分看起来像

<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属性会更好?

0 个答案:

没有答案