2

当可观察的 this.isFollowing 改变时,计算函数 this.followButtonText 怎么不更新,总是显示(Follow)?$(文档).ready(函数 () {

        function AppViewModel() {

            this.toggleIsFollowing = function () {
                this.isFollowing = !this.isFollowing;
                follow();
            };

            this.isFollowing = ko.observable(false);
            this.followButtonText = ko.computed(function () {
                return this.isFollowing ? "Unfollow" : "Follow";
            });
        }

        ko.applyBindings(new AppViewModel());


        }

    });
</script>
4

2 回答 2

2

可观察对象实际上是一个函数。要读取当前值,您需要将其作为不带参数的函数调用,例如:this.isFollowing()

要设置 observable 的值,您需要将新值作为第一个参数传递。所以,你的切换看起来像:this.isFollowing(!this.isFollowing());

在您的followButtonText计算中,您需要将其作为函数调用,例如:

return this.isFollowing() ? "Unfollow" : "Follow";

于 2013-02-05T00:26:15.363 回答
2

更改此语句:return this.isFollowing ? “取消关注”:“关注”;

为此:返回 this.isFollowing() ?“取消关注”:“关注”;

括号将其称为获取最新值所需的函数

于 2013-02-05T00:42:36.757 回答