【问题标题】:Two-way data-binding on XML in JavascriptJavascript 中 XML 的双向数据绑定
【发布时间】:2018-02-12 13:49:38
【问题描述】:

我刚刚开始与 Aurelia 合作,因此我希望能在数据绑定方面提供一些帮助。

我有一个网站,允许用户在页面上创建和编辑一组元素。当触发保存时,此页面会将元素转换为 XML 字符串并发送到服务器。但我真正想要的是在视图和 XML 之间建立数据绑定,或者至少在视图模型和 XML 之间建立数据绑定,这样我就可以在对元素所做的任何更改上立即检查生成的 XML。我是否必须为对元素所做的每次更改来回解析 XML 字符串?如果我更改 XML,Aurelia 如何知道更改视图?使用 Json 而不是 XML 进行数据绑定是否更容易,然后在更改时将 json 转换为 XML 以监控结果?

【问题讨论】:

  • 由于有简单的工具可以从 JSON 转换为 JavaScript 对象并处理这些服务器端,我的想法总是将 UI 转换为后端层。并不是说 XML 不可行,它只是对于应用程序和 UI 来说似乎是一种“更重”的方法,而不是可以轻松地用 XML 表示的高度嵌套的数据树传输。例如快点,告诉我 2 XML 到客户端技术上的数据……看看我的意思。
  • 确实!但不幸的是,我必须以 XML 格式存储元素,因为我与不同的应用程序共享这些数据,并且它不支持 json。

标签: javascript xml data-binding aurelia


【解决方案1】:

有时正确的答案是“不要这样做”
你要求给自己带来很多痛苦。

我毫不怀疑可以编写通用引擎来获得同步版本的 XMLJSON
但只要它是您的代码,您就必须在应用的整个生命周期内对其进行维护。
我敢打赌,您不会在没有后端的应用之间共享数据。

服务器端框架和语言在格式之间转换数据的能力要强得多。您也不必即时实施实时同步。
例如 asp.net mvc core 或其他可以接受 json 和 xml 格式的请求数据,并以这些格式发送出去。您甚至不必关心应用发布了什么内容。

您可以将逻辑添加到任何服务器端技术堆栈,以根据内容类型解析数据。

【讨论】:

  • 感谢您的回答!我不会为了我的目的发明一个完整的框架,只是想看看是否已经有任何常见的做法。不幸的是,我需要在这个“xml 视图”和动态的视觉表示之间切换,所以我相信转换回来和第四个服务器端可能会使事情变得复杂,我宁愿不必维护大量的服务器端代码。我认为让我继续进行的最佳方法是将 XML 排除在绑定之外,但根据需要,在浏览器中构建一个 XML 以呈现给用户(两种方式)和/或提交给服务器。
  • 您需要能够编辑 xml 还是只渲染它?刚刚找到了一个将json转换为xml的库npmjs.com/package/json-xml-parser
猜你喜欢
  • 2012-08-07
  • 2010-09-16
  • 1970-01-01
  • 2016-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多