首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算的可观察集为null不会更新GUI

计算的可观察集为null不会更新GUI
EN

Stack Overflow用户
提问于 2014-07-23 01:01:58
回答 1查看 575关注 0票数 1

我已经发现,如果计算出的可观测值被设置为某个值,然后重新计算并返回null,那么前面的计算值将被用于绑定/ GUI没有更新。这似乎很奇怪,我想问一下,我是做错了什么,还是这是预期的行为?

一个例子(http://jsfiddle.net/LkqTU/18081/):

我使用可观察到的计算值来返回css绑定中使用的类名。绑定可以是类名,也可以没有类。模板:

代码语言:javascript
复制
<p data-bind="css: textColour">Coloured text</p>

可观察到的计算值首先计算为“绿色”,彩色文本变为绿色(我已经为类“green”定义了css )。当计算出的可观测值重新评估并返回null时,文本颜色却保持绿色。

代码语言:javascript
复制
that.success = ko.observable(true);
that.textColour = ko.computed(function() {
    if (that.success()) {
        return 'green';
    } else {
        return null;
    }
});

我返回null以从绑定中删除该类。为什么这个不行?我已经发现,如果我返回undefined,或者完全不返回(也是undefined),绑定将按预期更新并删除绿色。

这个问题并没有阻碍我前进,但却在质疑我对KO的理解。有人能解释一下这件事吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-23 01:11:41

这可能被认为是绑定中的一个错误。我建议你在吉特布上发表一个关于它的问题:https://github.com/knockout/knockout

另一个解决方法是返回一个空字符串。

代码语言:javascript
复制
that.textColour = ko.computed(function() {
    if (that.success()) {
        return 'green';
    } else {
        return '';
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24900254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档