设想我们正在编写一个用于管理博客的 Web 应用。在任何时候,我们都应该能够回答诸如“他们正在看哪篇文章?”以及“他们是否正在编辑它?”这样的问题。在 Ember.js 中,这些问题的答案由 URL 决定。
URL 可以通过几种方式设置
- 用户首次加载应用。
- 用户手动更改 URL,例如通过点击后退按钮或编辑地址栏。
- 用户点击应用内的链接。
- 应用中的其他事件导致 URL 发生变化。
无论 URL 是如何设置的,Ember 路由器都会将当前的 URL 映射到一个或多个路由处理器(route handler)。路由处理器可以执行以下几项操作:
- 它可以渲染一个模板。
- 它可以加载一个随后可供模板使用的模型。
- 它可以重定向到一个新的路由,例如当用户不被允许访问应用的某部分时。
- 它可以处理涉及更改模型或跳转到新路由的操作。