关于javascript:根据可观察的项目,可见和不可见的多个项目

Multiple items visible and invisible depending on observable

我有两个项目只有在给定的可观察值评估为false时才应该可见,而一个项目在同一项目的评估为true时才应该可见。如果我只有两个项目的可见性取决于可观察的项目,那么它会很好用。但是,当引入第三个项目时,它将停止工作。

ViewModel:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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/

小提琴正在工作。取消注释"按钮"项之一以查看问题。

任何人都可以找出问题所在吗?

关于安德斯,


delete是Javascript运算符,因此是保留字(请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete)。重命名该功能可以解决此问题:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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/)