了解Ember中控制器和路由之间的关系

Mic*_*ins 7 javascript ember.js

我在理解Ember应用程序中控制器和路由之间的概念关系时遇到了一些麻烦.

我已经开始了一个非常简单的尖峰测试的路径,以评估Ember,我越深入,它越多,我看到我的路线填满我应该是控制器的责任,如操作,连接模型,最终调度到视图以呈现模板.

控制器都是空的,似乎只是一个自动映射要求的占位符.

我在这里错过了一个基本的东西 - 来自Rails的观点,并且(或者错误地)将"轨道方式"应用于Ember我期望我的路由定义由URL表示的状态,这将映射到控制器"动作".

任何指针都将非常感激.

Pat*_*mer 2

当模型类处理对象及其状态时,控制器处理应用程序本身的状态。

一个非常简单的用例可能是表单有两种状态:readonlyMode 和modifyMode。这显然不属于定义实际对象的模型。这只是您的应用程序的一个状态。

如果控制器表示状态为 readonlyMode,则视图会将所有输入字段呈现为禁用状态。修改模式则相反。

但我同意,决定把它放在哪里并不总是那么容易。最后,MVC 是关于概念的。必须将其放入某种规则中,我想说:

  • 表示持久数据(存储在某种存储/数据库中)的所有内容通常都是模型的一部分。
  • 一切有助于使您的应用程序有状态的 => 控制器。