【问题标题】:Kendo Observable.toJSON() not returning complete objectKendo Observable.toJSON() 不返回完整对象
【发布时间】:2017-09-07 13:12:15
【问题描述】:

我有一个包含 SharePoint 网站和文件夹元数据的 Kendo Observable 对象。我尝试使用点符号和提供的 Observable.set() 方法添加站点对象。

它们被添加到对象中,当我检查对象时,新站点对象确实被添加到 Observable 中。但是当我调用 toJSON 时,我只会得到在页面加载时创建的初始 Observable。

var folder = {
    Id: 0,
    SharePointSite: site,
    RelativeUrl: "",
    IsActive: true
};

configuration.Sites[siteIndex] = site;
configuration.Folders[folderIndex] = folder; <- plain JS object

configuration.set(`Sites[${siteIndex}]`, site);
configuration.set(`Folders[${folderIndex}]`, folder); <- creates Observable object

loadPartialView($("#sites"), siteOverviewUrl, configuration.toJSON(), siteOverviewLoaded);

我自己创建文件夹对象,站点对象是从用户提交的表单序列化的。两者都被添加到 Observable 中,调用 configuration.toJSON() 后两者都不存在。 Configuration 是我的根 Observable。

提前谢谢你。

【问题讨论】:

    标签: javascript jquery kendo-ui kendo-observable


    【解决方案1】:

    如果使用 set 正确修改了值,Kendo Observable 会继续自我更新。

    但是,如果执行 JSON 转换,则返回纯 JSON 对象,它不再是可观察的。因此,对根 observable 所做的任何进一步更改都不会反映到该 JSON 对象或使用该 JSON 执行的绑定。

    希望这段代码 sn-p 能有所帮助并看到这个demo

    var observable = new kendo.data.ObservableObject({ name: "John Doe" });
    observable.set("age", "30");
    var a = observable.toJSON();
    
    observable.set("height", "6");
    
    console.log("observable", observable); // outputs "Observable"
    console.log("json", a); // outputs "JSON"
    

    【讨论】:

    • 我想你误解了我的问题。我没有向 JSON 对象添加新对象,我只是向 Observable 添加新对象。当我 console.log 观察 Observable 时,我看到了新对象。每当我 console.log 输出 .toJSON() 时,只会返回初始的 Observable 对象。不是新添加的对象。
    • 这里我准备了一个演示,但它工作正常。 dojo.telerik.com/eFayI/2
    • 谢谢,但我知道 Observable 是如何工作的,我已经关注了官方文档。配置是我的 Observable 对象,我正在添加这样的新对象:configuration.set(Folders[${folderIndex}], new kendo.data.ObservableObject(folder));并且还尝试了 configuration.set(Folders[${folderIndex}], folder);其中“文件夹”只是从服务器返回的简单 JSON。
    猜你喜欢
    • 2011-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多