为什么emberjs在应用程序初始化时创建所有控制器?

时间:2012-09-26 14:27:06

标签: ember.js

在应用程序初始化时,所有控制器都由Ember初始化。 使用任何控制器后,它会保留其值,这在重用控制器时会出现问题。 我想知道:

  1. 在应用程序初始化时初始化所有控制器的好处?
  2. 有没有办法解决我重用控制器的问题,以便重置所有变量?
  3. PS:请不要误解“重用控制器”。我想要的是使用相同的控制器,而不使用之前任何任何先前输入的值。

1 个答案:

答案 0 :(得分:2)

控制器旨在长期存在并保持应用程序状态,即使它们的视图可能会闪烁。在典型的Ember应用程序中,控制器创建一次并在应用程序的生命周期中生效,因此在应用程序初始化时初始化控制器的原因。

为了便于“重置”控制器,您可以使用Ember.ObjectController,代理获取和未在控制器上定义的属性集,您设置为content属性的对象。要重置控制器,只需将content设置为新对象。