根据可观察性,多个项目可见和不可见

时间:2013-12-29 17:37:37

标签: javascript css knockout.js

我有两个项目只有在给定的observable计算结果为false时才可见,而一个项目在同一项目的计算结果为true时应该是可见的。如果我只有两个可见性取决于可观察量的项目,它工作正常。但是,当引入第三个项目时,它将停止工作。

视图模型:

var viewModel = {
editable: ko.observable(false),
edit: function () {
    this.editable(true);
},
delete: function () {
    this.editable(true);
},
cancel: function () {
    this.editable(false);
},
save: function () {
    this.editable(false);
}
};

ko.applyBindings(viewModel);

这里有一个小提琴:http://jsfiddle.net/mupersan82/Y6eKS/10/

小提琴正在发挥作用。取消注释其中一个“按钮”项以查看问题。

任何人都可以确定问题所在吗?

问候,安德斯

1 个答案:

答案 0 :(得分:2)

delete是一个Javascript运算符,因此是一个保留字(请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete)。重命名函数修复它:

var viewModel = {
    editable: ko.observable(false),
    edit: function () {
        this.editable(true);
    },
    remove: function () {
        this.editable(true);
    },
    cancel: function () {
        this.editable(false);
    },
    save: function () {
        this.editable(false);
    }
};

ko.applyBindings(viewModel);

(小提琴:http://jsfiddle.net/Y6eKS/11/