您现在的位置:首页 >> 前端 >> 内容

Ember核心概念

时间:2016/12/8 13:42:14 点击:

  核心提示:核心概念在你开始写 Ember 代码之前,先了解一个 Ember 应用如何工作的是个不错的主意。 路由和路由处理程序假想我们要编写一个让用户罗列他们准备出租房屋的 web app。在任何时候,我们都应...

核心概念

在你开始写 Ember 代码之前,先了解一个 Ember 应用如何工作的是个不错的主意。

Ember核心概念

路由和路由处理程序

假想我们要编写一个让用户罗列他们准备出租房屋的 web app。在任何时候,我们都应该能够回答诸如他们在看的是什么房子、他们能否修改它之类的关于当前状态的问题。在 Ember 里,这些问题的答案取决于 URL。URL 可以通过如下方法被设置:

- 用户第一次加载应用。

- 用户手动修改 URL,比如点击返回按钮或者修改地址栏。

- 用户点击 app 里面的链接。

- app 里的一些其它的事件导致 URL 跳转。

不管 URL 被如何修改,Ember 总是首先将 URL 映射到一个路由处理程序。

路由处理程序随后通常会执行如下两个操作:

- 渲染一个模板。

- 加载一个随后会被模板读取的模型。

模板

Ember 使用模板来组织 HTML 在应用中的布局。

Ember 代码库中的绝大多数的模板对你来说,可以很快进行熟悉。它们看起来像是 HTML 片段。比如:

<p>Hi, this is a valid Ember template!</p>

Ember 模板使用 Handlebars 模板语法。任何适用 Handlebars 的语法都适用于 Ember。

模板也可以用于展示运行环境提供给它们的房子,不管这是一个组件或者一个路由(一般而言,一个控制器会将路由的模型展现给模板,但是这种方式在现代的 Ember app 中极少被使用,并且它将很快被取代)。例如:

<p> Hi, {{name }}, this is a valid Ember template!</p>

这里的 {{name}} 就是模板运行环境提供的一个属性。

除了属性,双大括号({{}})也可以包含助手程序和组件,我们会在稍后讨论它们。

模型

模型表示持久化的状态。

例如,当一个用户房屋出租信息时,房屋租赁应用将需要保存租赁的详细信息,并且它将拥有一个可能叫做租赁模型来定义它的详细信息。

一个模型通常将信息保存到 web 服务器,尽管模型能通过配置保存到诸如浏览器的 localStorage 之类的任何其它地方。

组件

模板用于描述用户界面的样子,而组件则用于控制用户界面的行为。

组件由两部分组成:一个通过 Handlebars 编写的模板和一个通过 JavaScript 编写的定义组件行为的源文件。例如:我们的房屋租赁应用或许有一个叫做 all-rentals 的用来用于展示所有的出租信息的组件和另一个叫做 rental-tile 用于展示单独的租赁信息的组件。rental-tile 组件或许会定义让用户隐藏或者展示租赁信息图片的行为。

Tags:EM MB BE ER 
作者:网络 来源:qq_2065938