1、Routingweb
1. 当用户与应用程序交互时,它会通过不少状态。Ember.js为你提供了有用的工具去管理它的状态和扩展你的app。app
2. 要理解为何这是重要的,假设咱们正在编写一个Web应用程序来管理一个博客。如:是当前登陆的用户吗?他们是管理员用户吗?他们在看什么?是设置屏幕打开?他们正在编辑当前的提交的内容吗?工具
3. 在Ember.js,每个应用程序中可能的状态是由一个URL表示的。由于咱们上面问的全部的问题--咱们已经登陆了吗?咱们在看什么?--经过路由处理器封装的网址,回答他们是既简单又准确。spa
4. 在任什么时候候,你的应用程序有一个或多个活动路由处理器。由于下面两个缘由之一活动的处理程序会改变:code
5. 当当前的URL发生变化,新的活动路由处理程序可能执行一个或多个如下内容:router
2、Logging Route Changesblog
随着你的app复杂性的增长,它能够帮助你清楚的看到router下什么东西正在进行。为了让Ember把过分事件输出到log,修改项目的配置文件以下:事件
config/environment.jsci
ENV.APP.LOG_TRANSITIONS = true;
3、Specifying A Root URL路由
若是你的Ember app是从同一域提供的多个web应用程序之一,对你的Ember app来讲它可能须要向router指出什么是root URL。默认的,Ember将认为它是来自你的域的根路径。
例如,若是你想要从http://emberjs.com/blog/为你的博客的应用程序提供服务,有必要指定root URL为/blog/。
这能够经过设置路由器中的rootURL来实现:
app/router.js
Ember.Router.extend({ rootURL: '/blog/' });