0

ここに私のコードがあります:

var Feed = function (searchTerm, feeditems)
    {
        this.ID = 1;
        this.SearchTerm = searchTerm;
        this.FeedItems = ko.observableArray(feeditems);
    };

    var FeedItem = function(userName, message)
    {
        this.UserName = userName;
        this.Message = message;
    };

    var viewModel = {
        Feeds: ko.observableArray()
    };

    ko.applyBindings(viewModel);



    function getFeedData()
    {
        var url = "/Feed/GetFeedData";
        $.getJSON(url, function (data)
        {
            $.each(data, function ()
            {
                viewModel.Feeds[0].FeedItems.unshift(new FeedItem(this.UserName, this.Message));
            });
        });

        window.setInterval("getFeedData()", TIMEDELAY);
    }

Feeds の最初の Array 要素の FeedItems を更新する方法がわかりません。基本的に:viewModel.Feeds[0].FeedItems.unshiftは機能しません... :(

viewModel.Feeds をチェックするだけで、すべてのメソッドが表示されますが、viewModel.Feeds[0] では未定義であると表示されます。

では、観測可能な配列の最初の要素の観測可能な配列を更新する方法は?

ありがとう!

4

1 に答える 1

1

まず、viewModel.Feeds は空の配列です。したがって、Feeds[0] は未定義になります。必ず初期化してください。それができない場合、配列の長さが 0 の場合は、新しいオブジェクトを作成して配列にプッシュすることを検討してください。

于 2012-11-27T16:57:23.923 に答える