我应该使用什么类型的控制器来表示不是(持久)模型的复杂对象?

时间:2013-02-07 05:01:42

标签: ember.js

我正在编写一个日历应用程序,它需要按月显示事件

虽然我需要创建表示日历月份的对象,但我认为这些CalenderMonth对象应为“models”(在{{ 1}}术语),因为Ember对象不会持久存储到服务器(而CalendarMonth对象将会存在)。相反,Event将为CalendarMonths,使用'objects'构建,扩展 CalendarMonth 'class'

那么,我使用什么类型的控制器作为(经常变化的)Ember.Object对象的代理?一个(CalendarMonth)控制器? vanillaObjectController

ArrayController似乎是要走的路,因为我的意图是让控制器充当单个对象的代理。我想我只是因为在相应的路径对象中,我将ObjectController对象指定为控制器的 MODEL 。当它不是模型时,它只是一个对象。

换句话说,我的问题是:

CalendarMonth 一个模型分配给Ember object ObjectController's属性是不好的做法?

1 个答案:

答案 0 :(得分:2)

使用普通的JS对象作为控制器的模型/内容是不错的做法。重要的是视图将如何呈现模型。如果您一次只显示一个活动,或者该月的所有活动只显示一个月,那么ObjectController是您最好的选择。

当您想要循环控制器中的模型/内容并显示视图中的每个项目时,使用ArrayController。我不认为你应该过分担心你应该使用什么样的控制器,一旦你决定如何创建你的视图,它就会变得非常明显。

当Ember谈到为你的控制器使用Model时,你可以根据需要使用你自己的Ember对象然后在控制器中引用它,但是如果它是一个自然的JS对象或者它并不重要灰烬物体。控制器看起来都很好。