我有以下非常简单的代码示例来测试div的条件显示。由于某种原因,它无法正常工作,我想知道是否有人遇到过它。我正在使用淘汰赛3.0.0.js.

这是我的HTML

<div data-bind="if: displayDetail">
    HERE IS THE DETAIL <label data-bind="text: displayDetail"></label>
</div>

<div data-bind="ifnot: displayDetail">
    THERE IS NO DETAIL <label data-bind="text: displayDetail"></label>
</div>
<button data-bind='click: flip'>Flip</button>


这是我的Javascript

function BooleanViewModel() {
var self = this;
self.displayDetail = ko.observable(false);

// Operations
self.flip = function() {
    //alert("val is " + self.displayDetail);
    if(self.displayDetail){
        self.displayDetail = false;
    }else{
        self.displayDetail = true;
    }
};

}
ko.applyBindings(new BooleanViewModel());


请让我知道是否看到我错过的任何内容

最佳答案

每个observable是一个函数,因此要获取或设置值,您应该使用()

self.flip = function() {
    //alert("val is " + self.displayDetail());
    if(self.displayDetail()){
        self.displayDetail(false);
    }else{
        self.displayDetail(true);
    }
};

10-07 22:10