视图不更新 - 缺少 css 类

Posted

技术标签:

【中文标题】视图不更新 - 缺少 css 类【英文标题】:view does not update - css class missing 【发布时间】:2021-03-26 00:36:15 【问题描述】:

当我按下“更新”按钮时,我会看到具有正确值(真/假)的警报,但不会应用“完成”类。 为什么视图不更新?

<div data-bind="foreach: steps">
    <div data-bind="css: done: complete">
        <span data-bind="text: name"></span>
        <button data-bind="click: updateStatus">Update</button>
    </div>
</div>

var viewModel = function() 
    var self = this;
    self.steps = ko.observableArray();

    loadTestData(testDataSteps);
    function loadTestData(stepsArray) 
        $.each( stepsArray, function( index, value )
            self.steps.push(new Step(value.id, value.name, value.step))
        );
    


var Step = function (id, name, step)
    var self = this;
    self.id = ko.observable(id);
    self.name = ko.observable(name);
    self.step = ko.observable(step);
    self.complete = ko.observable(false);

    self.updateStatus = function () 
        if(self.complete === true) 
            alert("true")
            self.complete = false;
        else 
            alert("false")
            self.complete = true;
        
    ;
;

【问题讨论】:

【参考方案1】:

更改 getter 和 setter 方法。

var Step = function (id, name, step)
    var self = this;
    self.id = ko.observable(id);
    self.name = ko.observable(name);
    self.step = ko.observable(step);
    self.complete = ko.observable(false);

    self.updateStatus = function () 
        if(self.complete() === true)  //getter
            alert("true")
            self.complete(false); //setter
        else 
            alert("false")
            self.complete(true); //setter
        
    ;


var viewModel = function() 
    var self = this;
    self.steps = ko.observableArray();
    self.steps.push(new Step('ID', 'TEST', 'TEST'));
    return self;

ko.applyBindings(new viewModel());
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>

<div data-bind="foreach: steps">
    <div data-bind="css: done: complete">
        <span data-bind="text: name"></span>
        <button data-bind="click: updateStatus">Update</button>
    </div>
</div>

【讨论】:

以上是关于视图不更新 - 缺少 css 类的主要内容,如果未能解决你的问题,请参考以下文章

MFC 单文档 视图类中CMyDoc* GetDocument() const编译时错误:缺少“;”(在“*”的前面)

由于缺少入口点,场景无法访问

UIActivityViewController 上缺少关闭按钮

缺少 Spring Boot 构建器

为啥这个 foreach 循环缺少类中的属性?

PostgreSQL:更新...缺少插入?