首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >淘汰机计算没有更新吗?

淘汰机计算没有更新吗?
EN

Stack Overflow用户
提问于 2013-06-01 04:37:51
回答 1查看 88关注 0票数 0

我有以下代码:

代码语言:javascript
运行
复制
    self.isViewingFolder = ko.observable();
    self.isViewingSet = ko.observable();
    self.canEditFolder = ko.observable();

    self.isViewingFolder(ko.computed(function() {
        return router.activeRoute().moduleId == 'viewmodels/folder';
    }));
    self.isViewingSet(ko.computed(function () {
        return router.activeRoute().moduleId == 'viewmodels/set';
    }));
    self.canEditFolder(ko.computed(function() {
        return self.isViewingFolder() && auth.isAuthenticated() && !self.isPublicFolder()
    }));

isViewingFolder和isViewingSet总是按预期更新,尽管canEditFolder只更新一次。如果我将canEditFolder设置为

代码语言:javascript
运行
复制
canEditFolder(isViewingFolder())

然后它就可以工作了,但是我需要里面的逻辑,所以我使用的是一个计算的可观测值。为什么这不起作用呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-01 04:45:45

发生的情况是,前两个函数中的可观测对象没有将它们的更新级联到更高的可观测对象。不带isViewingFolder()作为参数的canEditFolder评估它的初始值,然后它就不会收到更新,因此需要一个新的参数来告诉它更新它的值。

现在既然canEditFolder总是等于isViewingFolder,为什么你还需要这个额外的函数呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16865601

复制
相关文章

相似问题

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