1

来自Trek 的教程:

您的应用程序必须具有 ApplicationView 属性。将为您创建此类的一个实例,并将其作为根视图插入到应用程序的视图层次结构中。

本教程给出了这个示例代码:

App.ApplicationView = Ember.View.extend({
  templateName: 'application'
});

App.ApplicationController = Ember.Controller.extend();

ApplicationView和有什么特别之处ApplicationController?是否保留了它们的特定名称并且必须通过转换使用,或者路由器引用它们的方式有什么特别之处?

据我了解,Ember 的一项原则是消除样板代码。所以我猜想还有更多的东西可以明确地为每个应用程序创建这两个视图作为起点——否则 Ember 只会在幕后为我制作它们。

ApplicationView重新表述我的问题, Ember 应用程序有什么ApplicationController特别之处。我是否需要为每个应用显式创建它们,如果需要,我是否需要按照约定命名它们?

注意:我使用的是 ember-latest

4

1 回答 1

5

Ember.js 试图坚持约定优于配置的编程理念。因此,有些东西需要特别命名并遵循正确的大小写规则。在调用App.initialize()您的应用程序时,它会自行查找该属性App.ApplicationView。然后,您的应用程序会渲染此视图,将其插入 dom 并自动创建 的实例App.ApplicationController,将其设置为您的ApplicationView. 这意味着您中的任何属性都可以通过在视图中引用它们ApplictationController来绑定到您的中。ApplicationView

如果您App.initialize()在没有使用App.ApplicationViewApp.ApplicationControllerember 的情况下调用,则会引发错误,让您知道必须创建它们。

ApplicationView并且ApplicationController是您的 ember 应用程序的组成部分,并且必须存在。Ember 是一个 MVC 框架,ApplicationView是你的根 V,ApplicationController是你的根 C。尝试使用像 ember 这样的框架来处理你想要的部分是很诱人的,但只要多做一点工作,你就会拥有一个更健壮的框架,并且易于使用的应用程序试图挑选功能。

于 2012-10-03T16:59:23.603 回答