0

サーバーからデータを取得しているときに、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);
            }
        });
    }
};

結果:

Object
[]
Object
[]
Object
[]
[]
Object
[] 
4

1 に答える 1

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);
                }
于 2012-08-24T17:00:56.187 に答える