You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Kendo observable.get仅返回原始对象数据?

如何获取Kendo ObservableObject中不带额外属性的原始对象?

当使用kendo.data.ObservableObject.get()获取对象时,返回的对象会被框架自动添加uid、_events等额外属性,无法直接拿到最初传入的纯数据对象。

示例代码

var observable = new kendo.data.ObservableObject();
var myCar = {make: "toyota", model: "camry"};
observable.set("car", myCar);
var carVar = observable.get("car");
console.log(carVar); // 输出包含uid、_events等附加属性的对象

解决方法

  • 使用内置的toJSON()方法
    Kendo的Observable对象提供了toJSON()方法,专门用于返回剔除框架附加属性的纯数据对象,这是最推荐的方式:

    var cleanCar = observable.get("car").toJSON();
    console.log(cleanCar); // 仅输出{make: "toyota", model: "camry"}
    
  • 手动复制原始属性
    如果需要自定义属性筛选逻辑,可以基于原始对象的属性列表,从Observable对象中提取对应值:

    var originalCar = {make: "toyota", model: "camry"};
    observable.set("car", originalCar);
    
    var cleanCar = {};
    Object.keys(originalCar).forEach(key => {
      cleanCar[key] = observable.get("car")[key];
    });
    console.log(cleanCar);
    
  • JSON序列化反序列化
    利用JSON的序列化特性,自动过滤掉不可枚举的附加属性(注意此方法会丢失函数等不可序列化的内容):

    var carVar = observable.get("car");
    var cleanCar = JSON.parse(JSON.stringify(carVar));
    console.log(cleanCar);
    

内容的提问来源于stack exchange,提问作者James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 01:02:36