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/' });