2

我最近正在阅读 @twbrandt 撰写的出色的ember.js入门文章,发现他对您的控制器/视图/模型/路由器/模板“应该负责”的内容的解释很有趣。

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

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

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

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

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

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

先感谢您

4

1 回答 1

0

视图使用控制器来显示数据。控制器是模型的代理,视图可以显示来自模型的信息。

但是您不必将模板链接到模型。您可以在您的控制器上拥有在您的车把模板中使用的属性。然后,在保留关联记录时,由您将这些数据传输/操作到模型。您还可以在模型上拥有不DS.attr存在因此不会持久化的属性。

使用样本来响应/理解您的问题会更容易。

于 2013-04-20T18:34:05.703 回答