【问题标题】:refreshing jquery datatables mapped knockout binding刷新 jquery 数据表映射的敲除绑定
【发布时间】:2013-09-11 23:36:24
【问题描述】:

我有一个绑定到映射的可观察数组的 knockOUTDataTable

我需要通过 ajax 刷新 dataTables 绑定。

它最初是通过使用以下映射选项将其映射到名为batchHistories的可观察数组来创建的

var mappingOptions = {
            'batchHistories': {
                create: function (options) {
                    return new BatchHistoryViewModel(options.data, dataContext);
                },
                key: function (batchHistory) {
                    return ko.utils.unwrapObservable(batchHistory.Id);
                }
            } 
        };

ko.mapping.fromJSON(data, self);

我正在执行以下操作来刷新绑定和数据表,但是当它运行时,数据不会在它应该改变的时候改变。如果我刷新整个页面,它们就是最新的。

        self.refresh = function () {
                $.when(this.dataContext.getBatchHistories(0, "Any"))
                    .done(function (result) {
                        {
                            self.destroyDataTableFromId(dataTableId);
                            ko.mapping.fromJSON(result, self);
                            self.createDataTable(dataTableId);
                        }

                    });
        };

我需要在这里重做映射吗?你能看到我错过了什么吗?

createDataTable 函数只有 jqueryDataTable jquery 的东西。

【问题讨论】:

    标签: knockout.js knockout-mapping-plugin


    【解决方案1】:

    我的问题是返回的数据未被识别为 JSON 所以把它改成

    ko.mapping.fromJS(result, self);
    

    成功了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-13
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 2013-07-17
      相关资源
      最近更新 更多