我最近发现了ember.js,它引起了我对它的复杂性和可能性的兴趣。到目前为止,我经历了几个学习材料:
从这些方面,我了解到关于如何使用框架有很多“假设”,我们应该如何命名视图,控制器和模型以及如果我们遵循这些约定,我们可以节省大量的代码输入,因为 Ember.js默认情况下可以“开箱即用”。
这当然非常方便,但只有当你真正知道幕后发生了什么事情时你才不必写。从那以后我的问题出现了:
例如,当我们定义一个应用程序模板和一个视图时,发生了什么?我们自动完成了什么? applicationController是否为我们实例化?或者,我们是否必须手动创建一个?那些不是applicationViews / Controllers的其他视图/控制器对,如子视图(因为applicationView和applicationController在某种程度上是唯一的,因为它们必须存在于任何ember.js应用程序中)?
WHAT 路由器(来自1.0pre4的API)是否为我们自动执行,如果我们只定义一堆路由但不覆盖任何路由器的默认常规行为?
就个人而言,真正帮助我理解这里的关键概念的是示例应用程序,并转换到另一个状态,它将实现应用程序为了正常工作而需要执行的所有操作< / strong>(意思是,它不依赖于ember会为我们做的任何代码)。这样,我就可以看到各个部分在起作用,并在我脑海中“重新设计”这个过程,希望能够完整地理解这个过程。
如果这个问题过于复杂或模糊,请建议我如何缩小我的兴趣。
答案 0 :(得分:0)
开始使用EmberJS时,你真的不需要太多东西。我在这里创建了一个JSFiddle:http://jsfiddle.net/nzXW9/,突出了简单应用程序的简单性。我还创建了一个多余的App.PetsCatsController
,只是为了演示当你进入pets.cats
路线时它是如何自动成为控制器的。
您无需applicationController
或applicationView
即可开始使用。默认情况下,Ember从pets.index
路线开始假定以下内容:PetsIndexController
,PetsIndexView
,PetsIndexRoute
。
根据我对EmberJS的理解,让我们采用一个简单的示例场景(我们现阶段没有DS模型),当我们进入#/ pets / cats路线时:
PetsCatsRoute
以获取有关进入此路线的说明; PetsCatsController
的实例,如果我们这样做,请转到#5,否则转到#3; PetsCatsController
,如果有创建它的实例; PetsCatsController
,请实例化EmberJS生成的PetsCatsController
控制器; PetsCatsView
(如果存在),否则自动生成一个。{/ li>
醇>
您还会注意到JSFiddle,您不一定需要关注索引路由,除非您需要扩展项目。