【问题标题】:Multiple Models多种型号
【发布时间】:2012-02-14 09:23:18
【问题描述】:

我喜欢 knockoutjs,我们越早摆脱直接向 DOM 编写代码越好。我无法理解我将如何做一些我将在问答网站方面解释的事情。 (这可能是一个通用的 MVC/MVVM 问题)

在我的数据模型中,我有一个问题[id, description] 和 answer[id, question_id, text]。浏览器请求一个绑定到 tbody 的问题列表,其中一列将显示问题描述,而另一列应绑定到答案文本框。

这样做的一个明显方法是使用 QuestionAnswer[question_id, answer_id, question_descrition, answer_text] 模型。理想情况下,我希望将它们分开以最大程度地减少发送/接收/存储时的转换,如果没有某种方法可以将它们分开,那么我有以下问题:

创建 QuestionAnswer 模型的理想位置在哪里?我敢打赌,按照惯例,它是在服务器上创建的。

如果某处有这样的例子,请指出它,否则我认为它会成为一个很好的例子。

请帮我解决这个问题,谢谢!

【问题讨论】:

    标签: mvvm knockout.js


    【解决方案1】:

    您可以做的是在服务器上创建组合模型,将其序列化为 json,然后使用映射插件将序列化列表添加到视图模型。

    我正在这样做 here 只是它不是一个组合模型,但不应该有任何区别。特别是因为您的关系似乎是一对一的。

    如果你需要在你的视图模型中创建一个“对象”,你可以使用映射定义来做,就像我做的here

    我使用 C# 在服务器上构建我的model,但我想你可以使用任何你喜欢的东西。

    映射插件最酷的地方在于它将数据添加到视图模型中,这样您就可以专注于行为。

    【讨论】:

    • 谢谢,我也在使用 MVC3。你的例子帮助我收集了想法。
    【解决方案2】:

    好的, 我已经收集了关于我的问题实际要问什么的想法。 要在客户端进行数据绑定,您显然还需要那里的数据模型。我对需要发送的内容和时间感到矛盾。

    继续问题/答案网站的想法:发送一个答案列表,其中每个答案都有一个问题是应该做的。这样您就可以绑定到答案列表,只需将每个答案的问题描述绑定到表格的第一个列。

    如果以后我想制作一个问题编辑器,我可能会向下发送一个完全不同的数据结构,而不是重复使用以前使用过的 Answer 结构。

    我认为可能有一种方法可以发送一个引用自身的更复杂的数据结构。这显然在带有一些额外库的 JSON 中是可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-03
      • 1970-01-01
      • 2011-02-03
      相关资源
      最近更新 更多