0

以下のコードは、最初に呼び出すと正常に動作しますが、2 回目の呼び出しでは gridviewmodel が乱雑になり、すべてのデータが冗長になります

$.ajax({
        url: 'rest service uri',
        type: 'GET',
        data: parameters,
        dataType: 'json',
        crossDomain: true,

        success: function (data) {

            function gridviewModel() {
                var self = this;
                self.items = ko.mapping.fromJS(data);
                self.columns = [
                    new column("Name", "name", "Asc"),
                    new column("URL", "name", "Asc"),
                    new column("Embargo Date", "name", "Asc"),
                    new column("Status", "name", "Asc"),
                    new column("Reviewer Name", "name", "Asc"),
                    new column("Approver Name", "name", "Asc")
                ];
            };


            ko.applyBindings(new gridviewModel());
}

removeAll() を使用して監視可能な配列をクリアしようとしましたが、うまくいきません。

何か案が?

将来この問題に直面する可能性があるため、Knockout マッピング プラグインで ko.mapping.fromJS(data, gridviewModel.items) を呼び出して修正できました。完全なコードは次のとおりです。

var gridviewModel = {

        items: ko.mapping.fromJS([]),
        columns: [
                    new column("Name", "name", "Asc"),
                    new column("URL", "name", "Asc"),
                    new column("Embargo Date", "name", "Asc"),
                    new column("Status", "name", "Asc"),
                    new column("Reviewer Name", "name", "Asc"),
                    new column("Approver Name", "name", "Asc")
                ]
};

$(function () {
    ko.applyBindings(gridviewModel, document.getElementById("wip"));

});

これで他の問題が解決することを願っています。

4

1 に答える 1