2

監視可能な this.isFollowing が変更されたときに、計算された関数 this.followButtonText が更新されず、常に (Follow) が表示されるのはなぜですか? $(document).ready(function () {

        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()

オブザーバブルの値を設定するには、新しい値を最初の引数として渡す必要があります。したがって、トグルは次のようになります。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 に答える