你的ember.js网络应用程序应该将虚假状态置于何处?

时间:2013-02-18 01:25:05

标签: javascript ember.js ember-data

我最近在Getting started with ember.js阅读了一篇优秀的@twbrandt帖子,并找到了他对你的控制器/视图/模型/路由器/模板应该对“有趣”负责的解释。

当您拥有数据库支持的模型时,一切都很好,将持久化状态放在模型对象中,并且很可能在控制器中找到任何未持久化的状态。

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

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

所以使用配置我留下了一个模型(实际上已经保存到数据库/等)但我需要混合这个w /一个实际上不存在的模型,但在手柄模板中它确实有助于有一个垫片的版本,所以HTML不复杂(保持javascript中的逻辑)。

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

我的问题是这个 - 应该这个数组是控制器的一部分,因为“其中一些”没有支持?或者整个数组是否应该覆盖ember-data的“find”方法(正如我现在所做的那样),以便“在存在时用真实模型替换每个虚假”行为?

提前谢谢

1 个答案:

答案 0 :(得分:0)

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

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

通过样本回复/了解您的问题会更容易。