KendoUI网格-MVVM绑定-对象]没有方法“isNew”

KendoUI网格-MVVM绑定-对象]没有方法“isNew”,mvvm,grid,kendo-ui,Mvvm,Grid,Kendo Ui,我有一个用于MVVM绑定的KendoUI网格。我还有一个用户界面,用户可以在其中输入数据并选择添加按钮。按下“添加”按钮后,新数据将添加到模型中。栅格设置为自动同步 我遇到的问题是,一旦添加了一个新项,就会出现一个错误[object]has no method isNew 我的表格如下: $("#objJoinGrid").kendoGrid({ dataSource: { transport: { create

我有一个用于MVVM绑定的KendoUI网格。我还有一个用户界面,用户可以在其中输入数据并选择添加按钮。按下“添加”按钮后,新数据将添加到模型中。栅格设置为自动同步

我遇到的问题是,一旦添加了一个新项,就会出现一个错误[object]has no method isNew

我的表格如下:

      $("#objJoinGrid").kendoGrid({
        dataSource: {
            transport: {
                create: function (operation) {
                    operation.success();
                },
                update: function (operation) {
                    operation.success();
                },
                destroy: function (operation) {
                    operation.success();
                },
                read: function (operation) {
                    operation.success(datasetMetaModel.joinList.ObjectList);                        
                }
            },
            schema: {
                model: {
                    id: "JOIN_OBJECT_ID",
                    fields: {
                        JOIN_OBJECT_ID: { type: "number" },
                        JOIN_OBJECT_NAME: { type: "string" }                            
                    }
                }
            },
            autoSync: true
        },
        height: 220,
        columns: [
            { field: "JOIN_OBJECT_ID", width: "130px" },
            { field: "JOIN_OBJECT_NAME", width: "130px" }        
        ]            
     });
然后,我将模型绑定到网格:

   datasetMetaModel = kendo.observable({
        joinList: datasetModel.JoinStructure,
    });

    kendo.bind($("#areaDiv"), datasetMetaModel);
在“添加”按钮的单击事件中:

$("#addDataset").bind("click", function () {
    var dropdownlistPO = $("#objectListing").data("kendoDropDownList");

    datasetMetaModel.joinList.ObjectList.push({
        JOIN_OBJECT_ID: dropdownlistPO.value(),
        JOIN_OBJECT_NAME: dropdownlistPO.text()
    });
});

在此实例中,datasetModel.JoinStructure是来自服务器的空数组。奇怪的是,如果我真的向服务器添加了一个条目,那么一切都正常,我可以添加新条目而不会出现问题。有什么想法吗?我猜这与我添加新项的方式有关。

尝试更改您的创建以实际返回新创建的记录。e、 g

create: function(e) {
        var item = e.data;
        item.Id = data.length + 1;
        e.success(item);
    }
这里有一个与您的非常相似的实例


尝试更改您的创建以实际返回新创建的记录。e、 g

create: function(e) {
        var item = e.data;
        item.Id = data.length + 1;
        e.success(item);
    }
这里有一个与您的非常相似的实例


如果禁用自动同步,则可以成功添加到网格。但是,当我调用grid.sync时,错误再次出现。这真是奇怪的行为,我看不出我的代码有什么问题。可能是剑道错误?如果我禁用自动同步,我就可以成功地添加到网格中。但是,当我调用grid.sync时,错误再次出现。这真是奇怪的行为,我看不出我的代码有什么问题。可能是剑道错误?问题是Create函数从未被触发。我将新记录添加到模型中,而不是直接添加到网格中。从下拉列表中选择项目时,将添加新记录。在我的模型中,ID字段是JOIN_OBJECT_ID。当我向模型中添加新记录时,我使用唯一的JOIN_OBJECT_ID值将其添加。我使用的是MVVM绑定。问题是Create函数从未被触发。我将新记录添加到模型中,而不是直接添加到网格中。从下拉列表中选择项目时,将添加新记录。在我的模型中,ID字段是JOIN_OBJECT_ID。当我向模型中添加新记录时,我使用唯一的JOIN_OBJECT_ID值将其添加。我正在使用MVVM绑定。