gpt4 book ai didi

javascript - 在你的 ember.js 网络应用程序中,伪持久状态应该存在于何处?

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

我正在阅读优秀的 Getting started with ember.js@twbrandt 发表最近发现他对你的 Controller / View /模型/路由器/模板“应该负责”的内容的解释很有趣。

当你有一个数据库支持的模型时,一切都很好,将持久化状态放在模型对象中,任何未持久化的状态很可能会在 Controller 中找到。

但假设您允许客户定义给定模型的外观(某种配置)。从这个配置中,您需要构建一个“结构”以在运行时添加这些模型。

例如,您允许客户定义他们每天的营业时间。从这个配置中,您需要在页面上添加一个空的或“人造”模型来填充一整天。您创建这些人造模型是因为对于每个工作日,您还需要获取这些模型的持久版本(因为客户实际上可以使用该应用程序创建一个)。

所以使用配置我留下了一个模型(实际上被保存到数据库/等等)但是我需要将这个与一个实际上不存在但在 Handlebars 模板中的模型混合有助于拥有此的 shim 版本,因此 html 并不复杂(将逻辑保持在 javascript 中)。

目前,我将此逻辑存储在模型本身上,因为持久化的实际模型与作为单个数组绑定(bind)到 Handlebars 模板的人造模型/占位符之间存在“混合”(但其中只有一部分是通常是持久性支持模型)。

我的问题是这个数组是否应该成为 Controller 的一部分,因为“其中一些”没有得到支持?或者整个数组是否应该覆盖 ember-data 的“查找”方法(正如我现在所做的那样)以启用“在每个人造模型存在时用真实模型替换它”行为?

提前致谢

最佳答案

View 使用 Controller 来显示数据。 Controller 是模型的代理, View 可以显示来自模型的信息。

但您不必将模板链接到模型。您可以在 Controller 上拥有用于 Handlebars 模板的属性。在保留关联记录时,由您将这些数据传输/操作到模型。您还可以在模型上拥有不是 DS.attr 的属性,因此不会被持久化。

使用示例会更容易响应/理解您的问题。

关于javascript - 在你的 ember.js 网络应用程序中,伪持久状态应该存在于何处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14928193/

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