无法使用来自服务器的数据填充observableArray

时间:2012-08-22 14:55:06

标签: jquery ajax knockout.js

当我从服务器获取数据时,我无法在我的observableArray中插入任何值,但其他元素会获取数据。

JS 标记

var itemViewModel = {
    item: {},
    isLoaded: ko.observable(false),
    comments: ko.observableArray([]),
    loadcontent: function (getID) {
        $.ajax({
            url: '/api/item/details/' + getID,
            dataType: 'json',
            success: function (data) {
                itemViewModel.item = data;
                $.each(data.Comments, function (index) {
                    itemViewModel.comments.push(data.Comments[index]);
                    console.log(data.Comments[index]);
                    console.log(itemViewModel.comments);
                });
                itemViewModel.isLoaded(true);
                itemDetailBindings();
                console.log(itemViewModel.item);
                console.log(itemViewModel.comments);
            }
        });
    }
};

RESULT

Object
[]
Object
[]
Object
[]
[]
Object
[] 

1 个答案:

答案 0 :(得分:0)

itemViewModel方法中不需要success

success: function (data) {
                    item = data;
                    $.each(data.Comments, function (index) {
                        comments.push(data.Comments[index]);
                        console.log(data.Comments[index]);
                        console.log(comments);
                    });
                    isLoaded(true);
                    itemDetailBindings();
                    console.log(item);
                    console.log(comments);
                }