对正确的程序或至少使用sproutcore-routing的常用程序感到好奇。
在阅读中,它显示了路由的基本示例:
SC.routes.add(':controller/:action/:id', MyApp, MyApp.route);
我假设在大多数情况下,MyApp.route会在提供的控制器上调用提供的操作。我的问题更多的是关于这一步骤如何处理有大量主要视图的应用程序的设置/拆卸内容。
当控制器发生变化时,人们是否会实例化新控制器,以便始终以干净的数据和视图开始?或者更常见/明智的做法是在加载时实例化所有控制器,并简单地使用路由来显示/隐藏主视图?
我想在控制器内的动作之间弹跳时会出现同样的问题。做一些拆解是否合适,特别是在绑定/侦听器上,然后在重新调用操作时重新建立它们?
我的问题可能有点模糊,但我基本上想知道人们如何处理大量的主要观点,并处理清理工作,这样东西就不会陈旧或者嚼掉很多资源。
答案 0 :(得分:4)
我写了一篇博文,介绍了一种方法:http://codebrief.com/2012/02/anatomy-of-a-complex-ember-js-app-part-i-states-and-routes/
答案 1 :(得分:2)
在我看到的大多数Ember和Sproutcore应用程序和示例中,控制器都是在应用程序初始化时实例化的。路由驱动状态图中的状态更改,其中更新控制器并根据需要创建/销毁视图。