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);
    }

我不知道如何更新 Feed 的第一个 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 回答