gpt4 book ai didi

c# - Knockout js 和 Raven DB

转载 作者:行者123 更新时间:2023-11-30 15:42:42 25 4
gpt4 key购买 nike

我目前正在开发一个基于 no-sql 的应用程序(使用 raven db)。该应用程序的核心方面是具有许多节点、子节点等的树状数据结构。

目前,每个节点或子节点都由一个 C# 对象表示。父子关系由父节点上的子节点集合构成,即只进关系。

整个事情由 Mvc 应用程序中的临时表单处理,并为每种数据类型提供适当的 GET 和 POST。整个图以 JSON 格式存储在 Raven DB 上。

现在的目标是使用knockoutjs修改UI部分。由于 KO 也适用于 json 数据结构,我想知道是否有办法使 ravendb json 结构“兼容 knockout”,这意味着我可以直接使用它而不必制作 KO 特定结构(实现可观察对象等)然后创建两者之间的映射。

对象图示例:

public class NodeA
{
public string Name {get;set;}
public List<SubNode> Childs {get;set;}
}

public class SubNode
{
public string Name {get;set;}
public bool SomeBool {get;set;}
}

public class NodeB
{
public string Name {get;set;}
public int SomeInt {get;set;}
}

public class GraphToStore
{
public List<NodeA> NodeAList {get;set;}
public List<NodeB> NodeBList {get;set;}
}

读/写部分仍将在服务器端处理,在 UI 上的内容更新后使用 ajax 调用。验证将在服务器端进行,并通过 ajax 调用返回给客户端。正如我所说,我的问题是让 ravendb json 与 knockoutjs 一起工作,否则我必须重建整个事物并对其进行映射,并且该图很大(50 多个类)。

最佳答案

看看Knockout-mapping-plugin .它将通过一次调用“自动”生成与 knockout 兼容的 View 模型。

你会做类似的事情

var viewModel.myRavenDbData = ko.mapping.fromJSON(json data variable);
var unwrappedData = viewModel.myRavenDbData(); // need only if viewModel.myRavenDbData is an observable

完成此工作后,在调用映射和探索数据结构后设置断点。通常,它看起来像您的数据结构,其中包含 ko.observables 的实际值。导航所需的所有节点都是普通的 javascript 对象。

关于c# - Knockout js 和 Raven DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7269060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com